Javascript 需要单独的require.js应用程序
我有两个require.js应用程序。第二个将第一个用作依赖项。看起来是这样的: 在app1/main.js中Javascript 需要单独的require.js应用程序,javascript,requirejs,Javascript,Requirejs,我有两个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; });
requirejs.config( {
baseUrl : 'js', // baseUrl relative to app1 folder
paths: {
// paths used for app1
}
});
requirejs(['module'], function (module) {
return module;
});
该文件需要完全“独立”,并具有自己的require配置,以便加载其模块和libs
那么,
在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,或者其他类似的问题
因此:
- 我如何才能将require.js应用程序转换为一个可加载的模块,并保留其自己的配置
- 在没有建筑的情况下,有可能做到这一点吗?(我需要同时处理这两个问题,我不希望每次更改某些内容时都要等待构建)
- 我读过关于名称空间的文章,这可能是一个解决方案,但没有看到任何关于如何在此类情况下使用它们的内容-如果我必须在文件开始时手动添加它们,这对我来说不是问题
requirejs.config( {
baseUrl : 'js', // baseUrl relative to app1 folder
paths: {
// paths used for app1
}
});
app1/module1
requirejs(['module'], function (module) {
return module;
});
然后,来自app1的index.html将通过以下方式更新为:
从这样的东西:
<script type="text/javascript" data-main="js/main" src="js/libs/require.js"></script>
致:
要求(['module1']);
然后,您可以在第二个应用程序中轻松使用app1/module
我用这个例子更新了我的。看看。我的解释可能没有提供足够的细节。模块文件只是一个示例,但可能存在任何类型的文件。关键问题是,在文件app1/main.js中发生的所有事情都必须使用自己的require配置,因此它可以在其文件夹中需要文件,而app2/main.js可能使用与其文件夹完全不同的配置,但也可以加载app1/main.js文件。在您的文件中,只有一个配置文件供两个用户使用modules@Malharhak是的,我理解你。您所需要做的就是在您的第一个模块中分离关注点,当您需要它时,它的配置是不需要的(这就是我所描述的)。然后,您的第二个应用程序可能只需要
app/module1
。
<script type="text/javascript" data-main="js/main" src="js/libs/require.js"></script>
<script>
require(['module1']);
</script>