我是古普的新手,一直在与gulp-minify和gulp-uglify合作,通过gulp-requirejs创建一个总体的main.js文件。
但是,我需要创建这个main.js文件的两个版本,一个用于我的DEV环境,一个用于PROD。
原因是,在一些.js文件中,我列出了URL,例如:
currentPage == '/products/chairs.html'但是,当将这些html文件移动到我的.Net结构中时,实际的URL是:
currentPage == 'goodsandservices/products/our-chairs.html'我当前的rJS任务如下:
gulp.task('rjs', function() {
rjs({
baseUrl: config.src.js,
out: 'main.js',
name: 'main',
mainConfigFile: config.src.js + '/main.js',
exclude: [ 'angular']
})
.pipe(prod ? uglify({ mangle: false, compress: { drop_console: true } }) : gutil.noop())
.pipe(gulp.dest(config.dest.js))
});我尝试过使用,并将rjs任务更新为:
gulp.task('rjs', function() {
rjs({
baseUrl: config.src.js,
out: 'main.js',
name: 'main',
mainConfigFile: config.src.js + '/main.js',
exclude: [ 'angular']
})
.pipe(prod ? uglify({ mangle: false, compress: { drop_console: true } }) : gutil.noop())
.pipe(replace(/NETStructure/g, 'goodsandservices'))
.pipe(gulp.dest(config.dest.js))
});在我的.js文件中,我将URL更新为:
currentPage == /NETStructure/g'/products/chairs.html'然而,这似乎不起作用。
发布于 2014-06-26 22:12:12
我建议您将这些字符串保存在一个对象中,并为同一个对象拥有两个不同的文件,例如:
constants.dev.js
var constants = {
chairs: '/products/chairs.html'
};constants.prod.js
var constants = {
chairs: 'goodsandservices/products/our-chairs.html'
};然后,您只需要包含正确的文件(或封装在闭包中的级联),并且:
currentPage == constants.chairshttps://stackoverflow.com/questions/24409306
复制相似问题