我有两个require.js应用。第二个使用第一个作为依赖。它看起来像是:
app1 / main.js中的
requirejs.config( {
baseUrl : 'js', // baseUrl relative to app1 folder
paths: {
// paths used for app1
}
});
requirejs(['module'], function (module) {
return module;
});
这个文件需要完全“独立”并且有自己的require配置,所以它可以加载它的模块和库。
然后, 在app2 / main.js
requirejs.config( {
baseUrl : 'js', // baseUrl relative to app2 folder
paths: {
'app1' : '../app1/main' // Using the other app
}
});
requirejs(['app1', 'module'], function (app1, module) {
console.log(app1, module); // The first one should be app1/module.js, the second app2/module.js
});
这个第二个文件需要有它的配置,但还需要加载app1 / main.js作为依赖,就像它是一个常用的模块一样。
但是两个requirejs.config只是混合了,如果我在第一个文件中需要一个文件,它会使用第二个文件的baseUrl,或者其他类似的问题。
所以:
答案 0 :(得分:0)
据我所知,您正在引用第二个应用程序的配置。我相信,您应该将配置和此 app1module 模块分开。然后,您将可以要求 app1module 不用配置部分。
换句话说:
<强> APP1 / main.js 强>
requirejs.config( {
baseUrl : 'js', // baseUrl relative to app1 folder
paths: {
// paths used for app1
}
});
<强> APP1 /模块1 强>
requirejs(['module'], function (module) {
return module;
});
app1 中的 index.html 将以这种方式更新:
来自这样的事情:
<script type="text/javascript" data-main="js/main" src="js/libs/require.js"></script>
为:
<script type="text/javascript" data-main="js/main" src="js/libs/require.js"></script>
<script>
require(['module1']);
</script>
然后您可以在第二个应用程序中轻松使用app1 / module。
我使用此示例更新了demo repository。看看吧。