gulp:环境变量

用gulp开发的过程中,也会遇到想vue这样的需要通过环境变量来控制项目的情况,通过npm的run命令,我们可以将环境变量传递给项目中的js、html等。具体方法如下:
一:安装 cross-env
npm install cross-env -d

二:package.json中配置scripts:

  "scripts": {
    "build": "cross-env NODE_ENV=production gulp build",
    "serve": "cross-env NODE_ENV=test gulp",
    "test": "cross-env NODE_ENV=test gulp build",
    "trail": "cross-env NODE_ENV=trail gulp build"
  },

build是在gulpfile.js里面定义的方法,其中在less阶段执行的第三步中的函数set_env(process.env.NODE_ENV)

// ...
// 编译less文件
gulp.task('less', function () {
  set_env(process.env.NODE_ENV)
  // ...
})
// ...
gulp.task('build', gulp.series('less', 'cssmove', 'imagemin', 'html','js'))

三:gulpfile.js中生成环境变量文件env.js

var fs = require('fs');
var env = 'test';
function set_env(type){
    env = type || env;
    // 生成env.js文件,用于开发页面时,判断环境
    fs.writeFile("./src/js/env.js", 'function ENV (){ return "' + env + '"};', function(err){
        err && console.log(err);
    });
}
set_env(process.env.NODE_ENV)

这样就可以在js或html文件中引入并使用环境变量了。

你可能感兴趣的:(gulp,gulp环境变量)