[英]Source maps using gulp, Browserify, reactify, UglifyJS
我正在嘗試獲取與Chrome一起使用的JavaScript文件的源地圖。 當前gulp腳本的問題在於源映射(Browserify創建)導致文件的縮小版本。
例如,假設app.jsx是Browserify的入口文件,它require('a')
和require('b')
調用。 app.jsx獲得瀏覽器化,重新設置和uglifyied並按預期寫入app.js。 但是,模塊a
和模塊b
中的所有源映射引用也會縮小:
var gulp = require('gulp'),
browserify = require('browserify'),
watchify = require('watchify'),
source = require('vinyl-source-stream'),
buffer = require('vinyl-buffer'),
bundler;
bundler = browserify({
entries: '/app.jsx',
cache: {},
packageCache: {},
fullPaths: true
});
bundler
.transform('reactify');
.transform({
global: true
}, 'uglifyify');
bundler = watchify(bundler);
bundler.on('update', function() {
return bundler
.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(gulp.dest('/js'));
});
有關如何使其工作的任何想法?
看起來這是uglifyify的問題( https://github.com/hughsk/uglifyify/issues/16 )。 它似乎只是不知道如何生成源地圖。
有一些替代方案:
與捆綁后丑化 一飲而盡,丑化插件和一飲而盡,sourcemaps插件。 不幸的是,這不太理想,因為它不會刪除死的require
語句。
創建單獨的開發和分發版本 。 然后,您可以在不進行uglification的情況下為開發構建生成源映射。 您的分發版本可以在沒有源映射的情況下進行驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.