【发布时间】:2015-12-20 01:32:41
【问题描述】:
我正在尝试创建一个 gulp 任务来同时压缩和创建源映射。压缩和源映射创建工作,但我似乎无法弄清楚如何在使用 gulp-rename 插件时获得正确的输出名称。
为了简化:我在/src 文件夹中有一个source.js 文件,我想在/dist 文件夹中创建.min.js 和.js.map 文件。
这是我所拥有的:
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,这似乎是该过程的重要部分。
【问题讨论】:
-
正确的文件名是什么?
jquery-resizable.js.map? -
是的。更新问题以澄清
-
你在 sourcemap 之前尝试过重命名吗?
-
是的 - 结果相同。问题一旦重命名,它就适用于链中的所有内容。不适合一步完成所有工作,但如果你卸载到一个单独的步骤或任务异步会咬你。
标签: gulp gulp-sourcemaps gulp-rename