我是新手,已經遇到了一個可能是相當常見的問題。我想要的是將打字稿編譯成javascript,爲它創建一個源代碼映射,然後運行uglify。我希望爲ugliyfied以及非醜陋的js提供源代碼。Gulp:爲縮小和非縮小腳本生成源代碼
我試圖才達到如下的文件結構:
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的第一個()調用將導致正確sourcemap該文件的縮小的版本。
任何想法如何解決這個問題?
編輯:這不是gulp: uglify and sourcemaps完全是重複的,因爲我需要寫多sourcemaps多次調用到gulp.dest()
可能重複的[gulp:uglify和sourcemaps](http://stackoverflow.com/questions/32502678/gulp-uglify-and-sourcemaps) – user3272018