使用buildStatic进行捆绑时,有没有办法预处理.js文件(即注入特定于环境的设置)?
答案 0 :(得分:1)
我不知道在捆绑过程中预处理js文件的方法,但是您可以针对不同的环境使用不同的文件/模块,并使用JS API将您的开发版本与生产版本交换:
gulp.task('jspm', function() {
var builder = new jspm.Builder();
function production(builder) {
var systemNormalize = builder.loader.normalize;
builder.loader.normalize = function(name, parentName, parentAddress) {
if (name === 'ember') name = 'ember/ember.prod';
if (name === './app-config.dev') name = './app-config.prod';
return systemNormalize.call(this, name, parentName, parentAddress);
};
}
production(builder);
return builder.loadConfig('./config.js')
.then(function() {
return builder.buildStatic('app/main', 'dist/app.min.js', { sourceMaps: false, minify: false, mangle: false});
});
});
app-config.dev.js和app-config.prod.js是您在整个应用程序中使用的模块,它们提供特定于环境的设置。在您的代码中,您应该始终导入app-config.dev。在我的博文中了解有关此工作流程的更多信息:How to Use SystemJS Hooks for Building a Production Version of Your App