Gulp 使用 browserify 环境变量构建
Gulp build with browserify environment variable
我希望包含我的模块可以为条件流访问的环境变量或文件。
// 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
}));
};
您可以动态创建一个 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
我希望包含我的模块可以为条件流访问的环境变量或文件。
// 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
}));
};
您可以动态创建一个 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