繁体   English   中英

Gulp插件根据任务运行来包含/排除JS代码行

[英]Gulp plugin to include/exclude line of JS code depending on task ran

运行时是否有任何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);
    })

因此,我很高兴创建2个单独的脚本任务,一个用于localhost版本,一个用于.NET。

我可以使用gulp-replace ,但是我真的不想在gulp.js文件中放置代码

我将使用像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"}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM