运行时是否有任何gulp插件,可以包含/排除一行JavaScript。
例如,在我的一个JS文件中,我对本地JSON文件执行HTTP GET:
// To be used for localhost
$http.get('path-to-JSON-file.json')
.success(function (data) {
done(data);
})
但是当我移动到我的.NET服务器时,我需要这是对方法的调用:
// To be used for .NET
$http.get('/MyData/GetMyDataJson').success(function (data) {
.success(function (data) {
done(data);
})
所以,我很高兴创建两个单独的脚本任务,一个用于localhost版本,一个用于.NET。
我可以使用gulp-replace
,但我真的不想在我的gulp.js文件中放置代码
答案 0 :(得分:1)
我会使用像Mustache这样的东西来生成代码,例如:
您的主文件
$http.get('{{action_get_data}}').success(function (data) {
.success(function(data) {
done(data);
})
你的gulp文件:
var env="node";
var data={
"node":{"action_get_data":"path-to-JSON-file.json"}
".NET":{"action_get_data":"/MyData/GetMyDataJson"}
};
gulp.src("./templates/*.mustache")
.pipe(mustache(data[env]))
.pipe(gulp.dest("./dist"));
注意:但是,这有一些开销:你需要在文件中声明变量,在gulpfile中填充一个数组,每次都等待编译。
您也可以使用相同的代码库,只使用变量来处理不同版本环境之间的变化。
注2:您还可以从配置文件中获取环境数据,如下所示:
var data= require('data.json');
<强> data.json 强>
{
"node":{"action_get_data":"path-to-JSON-file.json"}
".NET":{"action_get_data":"/MyData/GetMyDataJson"}
}