给出requirejs
配置:
require.config({
baseUrl: './js',
paths: {
'jquery': 'vendor/jquery',
'bootstrap': 'vendor/bootstrap',
'basicModel': 'app/models/basicModel',
'aboutModel': 'app/models/aboutModel',
'contactModel': 'app/models/contactModel',
'models': 'models',
'vendor': 'vendor'
},
shim: {
'bootstrap': ['jquery', 'models']
}
});
我希望我的自动化脚本为生产准备一个包,以映射paths
对象中的每个值,如下所示:
'jquery': [cdnUrl + 'vendor/jquery', 'vendor/jquery'],
如您所见,cdnUrl
是一个实际变量,它将在运行时保存我的CDN端点。当运行此脚本时,无法在构建时确定端点。
我该如何进行这种映射?
编辑:
我不想在这种情况下使用正则表达式,因为我的真实require.config.js
文件更大更复杂,因为paths
以外的其他属性具有相同的语法。
我有一个脚本使用requirejs-config-file
npm包解析上面的配置,基本上把它变成了一个真实的对象。我只是无法弄清楚我在javascript代码中是否可以提出问题(而不是文本编辑)。
答案 0 :(得分:1)
这样的东西?
var config = {
baseUrl: './js',
paths: {
'jquery': 'vendor/jquery',
'bootstrap': 'vendor/bootstrap',
'basicModel': 'app/models/basicModel',
'aboutModel': 'app/models/aboutModel',
'contactModel': 'app/models/contactModel',
'models': 'models',
'vendor': 'vendor'
},
shim: {
'bootstrap': ['jquery', 'models']
}
};
for(var path in config.paths){
var pathValue = config.paths[path];
config.paths[path] = [cdnUrl + pathValue, pathValue];
}
console.log(config.paths);