我需要在开发期间切换应用程序服务器后端。目前,服务器在模块中被硬编码为字符串。 我正在寻找一种使用gulp切换服务器的好方法。
我不确定如何实现类似gulp watch localhost
或gulp watch devserver
的内容,其中最后一个参数表示后端服务器?
答案 0 :(得分:2)
您可能拥有每个不同配置的配置文件,例如dev.constant.js
和local.constant.js
。
这些文件中的每一个都包含一个角度常量,它保存您当前的配置,包括您的后端网址:
angular
.module('myFancyModule')
.constant('config', {
backendUrl: 'https://my.backend.com/api/'
});
使用yargs
和gulp-if
,您可以检查是否设置了标记(例如--dev
),并使用gulp-add-src
将相应的配置文件添加到流中。
另一种更安全的方法是将特定配置文件复制到名为config.constant.js
的文件中。
var argv = require('yargs').argv;
var fs = require('fs-extra');
gulp.task('watch', function() {
if(argv.dev) {
fs.copySync('./config/dev.constant.js', './config.constant.js');
}
//Your watch task here
}
这样做,您可以非常快速,轻松地更改配置。如果您通过gulp进行构建和部署,也可以将它用于构建和部署。