Можно ли запустить сборку в browserify/babel для определенной цели браузера?
Глядя на такие таблицы: http://kangax.github.io/compat-table/es6/
Похоже, что Chrome действительно близок к поддержке большого количества ES6, а это означает (на мой взгляд), что я должен иметь возможность отказаться от следующего во время разработки:
var babelifyOptions = {
presets: ['es2015', 'stage-0', 'react'],
extensions: ['.js', '.jsx']
};
при использовании browserify:
browserify(browserifyOptions)
.transform(babelify.configure(babelifyOptions))
.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(gulp.dest('./dist/js'));
И с этим мы надеемся ускорить время сборки. При строительстве для производства, очевидно, все еще требуется транспиляция.
Однако, когда я пропускаю пресеты es2015, browserify дросселирует сборку, не понимая таких вещей, как ...
, Это имеет смысл, но возможно ли запустить browserify, ориентируясь только на Chrome? (то есть разрешение токенов / операторов / функций, которые в настоящее время понимает Chrome).
1 ответ
Я не думаю browserify
проблема, но ваша версия NodeJS. Я думаю, что NodeJS 6 был первым, кто по умолчанию поддерживал многие функции ES2015, но, в частности, он не поддерживает новую систему модулей ES. Есть несколько предустановок Babel, которые исправляют пропущенные вещи. Вот только список тех, которые я нашел в быстром поиске:
babel-preset-es2015-node6
babel-preset-node6
babel-preset-es2015-node
babel-preset-es6-node6
Примечание. Я не использовал ни одного из них, поэтому не могу дать вам рекомендации.