我是 gulp 的新手,遇到了一个很常见的问题。我正在尝试将 typescript 编译成 javascript,为它创建一个源映射,然后运行 uglify。我想要一个用于 ugliyfied 和非 uglified js 的源图。
我想要实现的是以下文件结构:
framework.js
framework.js.map < this won't work
framework.min.js
framework.min.js.map
这是我的吞咽任务:
var gulp = require('gulp'),
uglify = require('gulp-uglify')
ts = require("gulp-typescript")
sourcemaps = require('gulp-sourcemaps')
rename = require('gulp-rename');
var tsProject = ts.createProject("tsconfig.json");
gulp.task('typescript', function(){
tsProject.src()
.pipe(sourcemaps.init())
.pipe(tsProject()).js
.pipe(sourcemaps.write('.')) // Write sourcemap for non-minified version
.pipe(gulp.dest("dist"))
.pipe(uglify()) // Code will fail here
.pipe(rename({suffix:'.min'}))
.pipe(sourcemaps.write('.')) // Write sourcemap for minified version.
.pipe(gulp.dest("dist"));
});
gulp.task('default', ['typescript']);
如您所见,我运行 sourcemaps.write() 两次以获取两个不同的文件。这给了我一个错误
tream.js:74
throw er; // Unhandled stream error in pipe.
^ GulpUglifyError: unable to minify JavaScript
at createError (C:\Users\alexa\Dropbox\code\Web\mhadmin\framework\node_modules\gulp-uglify\lib\create-error.js:6:14)
省略第一个 sourcemap.write() 调用将为文件的缩小版本生成正确的源映射。
任何想法如何解决这一问题?
编辑:这不完全是gulp: uglify 和 sourcemaps的副本,因为我需要编写多个 sourcemaps 并多次调用 gulp.dest()