使用browserify环境变量构建Gulp

时间:2015-01-22 21:29:09

标签: environment-variables gulp browserify

我希望包含一个环境变量或我的模块可以访问条件流的文件。

// contains env build specific data
// or value 'develop' || 'production'
var env = require('config');

我知道我可以使用yargs访问CL参数,这很好,但我似乎无法找到一种方法来获取我的browserify构建中的参数。

var bundleStream = {
  cache: {},
  packageCache: {},
  fullPaths: false,
  entries: [filename],
  extensions: config.extensions,
  debug: config.debug,
  paths: ['./node_modules', './app/js/'],
  require: ['jquery', 'lodash']
};

var bundle = function() {
  bundleLogger.start(filename);
  return bundleStream
    .bundle()
    .on('error', handleErrors)
    .pipe(source(filename.replace('-app', '-bundle')))
    .pipe(gulp.dest(process.cwd()))
    .on('end', reportFinished)
    .pipe(browserSync.reload({
      stream: true
    }));
};

1 个答案:

答案 0 :(得分:6)

您可以动态创建config.json文件,然后在模块中需要它:

var fs = require('fs');
var gutil = require('gulp-utils');

gulp.task('create-config', function(cb) {
  fs.writeFile('config.json', JSON.stringify({
    env: gutil.env.env,
    tacos: 'delicious'
  }), cb);
});

gulp.task('browserify', ['create-config'], function() {
  //...
});

在你的模块中:

var config = require('./config.json');
if (config.env === 'production') {
  //...
}

在命令行上:

gulp --env=production