我正在使用RequireJS加载一些模块。RequireJS:相对于数据主文件加载模块
我正在使用镜像CDN提供静态资产。问题是,模块相对加载到网站域名,而不是数据,主文件,使模块加载这样:
my-website.com/
↳ cdn.com/assets/js/require-main.min.js
↳ my-website.com/assets/js/helper-module.js
↳ my-website.com/assets/js/utility-module.js
有没有一种办法相对加载模块的数据,主文件,以便为使用CDN的模块提供服务?
my-website.com/
↳ cdn.com/assets/js/require-main.min.js
↳ cdn.com/assets/js/helper-module.js
↳ cdn.com/assets/js/utility-module.js
我不能硬编码的CDN域中的任何位置,因为它并不总是相同的。
这是require-main.js
requirejs.config({
baseUrl: "../js/",
waitSeconds: 15,
paths: {
helper: "helper-module",
...
}
});
的样本,这是rjs.optimize
功能I中缩小的全部资产,并结合一些模块
rjs.optimize({
appDir: './assets/js/',
baseUrl: ".",
mainConfigFile: './assets/js/require-main.js',
dir: './public/assets/js/',
preserveLicenseComments: true,
optimize: 'uglify2',
findNestedDependencies: true,
logLevel: 0,
uglify2: {
mangle: false
},
modules: [
{
name: 'require-main'
...
}
],
removeCombined: true,
writeBuildTxt: false
});
你的构建是否应该将所有**模块合并到一个包中?如果是,那么问题不在于CDN,而在于RequireJS需要在包之外获取文件。 – Louis
@Louis我编辑了我的问题:一些核心模块被组合,但我仍然需要一些未捆绑的额外模块。 – webpn