我正在尝试创建一个 gulp 任务来同时压缩和创建源映射。压缩和源映射创建工作,但我似乎无法弄清楚如何在使用gulp-rename
插件时正确获取输出名称。
为了简化:我在文件夹中有一个source.js
文件/src
,我想在文件夹中创建.min.js
和.js.map
文件/dist
。
这是我所拥有的:
gulp.task('scripts', function () {
// compressed
gulp.src(['src/*.js'])
.pipe(sourcemaps.init({ includeContent: false, sourceRoot: './' }))
.pipe(uglify())
.pipe(sourcemaps.write('./', {
sourceMappingURL: function(file) {
return file.relative + '.map';
}
}))
.pipe(rename({ suffix: '.min' }))
.pipe(gulp.dest('./dist'));
});
这样做的原因是它在中创建以下内容/dist
:
jquery-resizable.min.js
(一切都好 - 压缩,地图参考和正确的名称)jquery-resizable.js.min.map
(地图在那里,但名字不好 - 应该是 jquery-resizable.js.map)
我尝试了很多变化,但我不知道如何获取地图和压缩来构建和获取正确的文件名。
我还尝试在单独的步骤中重命名文件,但由于 gulp 的异步性质,它不能可靠地工作 - 有时它可以工作,有时它不能,所以这似乎也不是一个选项。
我错过了什么?
我不喜欢以这种方式创建源地图,但是这样做的正确方法是什么?我见过的所有示例似乎都在执行我上面所做的操作,只是它们没有将输出文件重命名为 min.js,这似乎是该过程的重要部分。