gulp不同环境打不同的包,比如dev 环境 product环境,
时间: 2023-09-18 18:09:14 浏览: 119
可以使用 gulp 的条件语句和任务依赖来实现在不同的环境下打不同的包。以下是一个示例代码:
```javascript
const gulp = require('gulp');
const gulpIf = require('gulp-if');
const uglify = require('gulp-uglify');
const sourcemaps = require('gulp-sourcemaps');
const isDev = process.env.NODE_ENV === 'development';
function js() {
return gulp.src('src/js/*.js')
.pipe(gulpIf(isDev, sourcemaps.init()))
.pipe(gulpIf(!isDev, uglify()))
.pipe(gulpIf(isDev, sourcemaps.write()))
.pipe(gulp.dest('dist/js'));
}
function css() {
return gulp.src('src/css/*.css')
.pipe(gulp.dest('dist/css'));
}
function build() {
return gulp.series(js, css);
}
exports.build = build();
```
在上面的代码中,我们定义了 `isDev` 变量,它表示当前是否为开发环境。然后,在 `js()` 函数中,我们使用了 `gulp-if` 插件来根据 `isDev` 变量的值判断是否需要生成 sourcemaps 或者压缩代码。在 `build()` 函数中,我们使用了 `gulp.series()` 函数来串联多个任务,以便在运行 `gulp build` 命令时同时执行这些任务。最后,我们导出了 `build()` 函数作为默认任务。
如果要在不同的环境下打不同的包,可以通过设置环境变量来实现。例如,在开发环境下运行 `gulp build` 命令时,可以使用以下命令:
```bash
NODE_ENV=development gulp build
```
在生产环境下运行 `gulp build` 命令时,可以使用以下命令:
```bash
NODE_ENV=production gulp build
```
这样,在开发环境下生成的包会包含 sourcemaps,而在生产环境下生成的包会被压缩。
阅读全文