Я пытаюсь получить исходные карты для своих файлов JavaScript, работающих с Chrome. Проблема с текущим сценарием gulp заключается в том, что исходные карты (созданные Browserify) приводят к уменьшенным версиям файлов.Исходные карты с использованием gulp, Browserify, reactify, UglifyJS
Например, app.jsx является файлом записи для Browserify, и в нем есть require('a')
и require('b')
. app.jsx получает браузер, проверяется и угадывается и записывается в 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'));
});
Любые идеи о том, как получить эту работу?
Проблема с 1. является браузером, вставляет исходную карту в файл, а затем uglify блокирует комментарий. Я выбрал 2, которые мне не нравятся, потому что вы не постоянно проверяете код так, как он запускается в производстве, но эта категория ошибок редко случается в моем опыте. –
Вам нужно сообщить исходным файлам gulp, чтобы прочитать существующие карты. 'sourcemaps.init ({loadMaps: true})' –
А я думал, что это не сработает для встроенных исходных карт, но после прочтения документации вы, безусловно, правы. Тем не менее, я все же хотел бы использовать более оптимальную стратегию минимизации для развертывания, что означает, что у меня будет другой поток развития независимо от того. Вероятно, будет придерживаться отдельной стратегии построения. Благодарю вас за предложения. –