Requirejs多次加载相同的Javascript文件

时间:2019-03-18 16:42:44

标签: javascript typescript requirejs

我在我的Typescript项目中使用requirejs作为模块加载器。我发现某些模块(js文件)被加载两次,而某些模块被加载了三次,这会导致问题。可能是什么原因?可能是因为导入这些模块时相对路径不同吗?这就是我的怀疑。怎么解决?

2 个答案:

答案 0 :(得分:0)

  

我发现某些模块(js文件)被加载两次,而某些模块被加载了3次,这会导致问题。

确保您不使用文件扩展名。这是一个已知问题(模块x.jsx不同)

答案 1 :(得分:0)

借助关于SO的另一个答案:https://stackoverflow.com/a/16380692/6305376,我在data-main文件中添加了以下内容,并且可以正常工作:

require.config({
    baseUrl: './', 
 }
)

很明显,如果从不同模块导入了不同的相对URL,则Requirejs为同一文件创建不同的模块。因此,这样设置基本URL会强制所有Requirejs模块相对于最外面的文件夹具有其名称,从而在模块及其名称之间进行一对一的映射。因此,每个模块只能加载一次。