Я новичок в gulp и столкнулся с проблемой, которая, вероятно, является довольно распространенным сценарием. Я пытаюсь скомпилировать машинописный текст в 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 и исходных карт, поскольку мне нужно написать несколько исходные карты с несколькими вызовами gulp.dest ()