Установка
Начните с установки Babel, Gulp, Gulp File, Rollup, Rollup Babel и нескольких предустановок:
npm i -D babel-core gulp gulp-file rollup rollup-plugin-babel babel-preset-es2015 babel-preset-es2015-rollup
Конфигурация
Настройте Babel (и Gulp) на использование предустановки es2015 в вашем .babelrc
:
{ "presets": ["es2015"] }
Затем в вашем gulpfile.babel.js
скажите Rollup использовать rollup-plugin-babel и игнорировать глобальные .babelrc
настройки.
rollup({ entry: 'app.js', plugins: [ babel({ presets: [ [ "es2015", { "modules": false } ] ], babelrc: false, exclude: 'node_modules/**' }) ] });
Строить
Собрав все это вместе, вы затем сгенерируете пакет и скажете gulp записать файл в файловую систему.
import gulp from 'gulp'; import file from 'gulp-file'; import { rollup } from 'rollup'; import babel from 'rollup-plugin-babel'; gulp.task('build', function() { return rollup({ entry: 'app.js', plugins: [ babel({ presets: [ [ "es2015", { "modules": false } ] ], babelrc: false, exclude: 'node_modules/**' }) ] }) .then(bundle => { return bundle.generate({ format: 'umd', moduleName: 'myModuleName' }) }) .then(gen => { return file('app.js', gen.code, {src: true}) .pipe(gulp.dest('dist/')) }); });
Закрытие
Я потратил время на переходы между различными документами проекта и плагина, чтобы найти рабочее решение. Возможно, я пропустил шаг.
Если вы следуете этим инструкциям и обнаружите, что это не работает для вас, сообщите мне об этом в комментариях ниже. Вы также можете найти меня на GitHub @AndrewHenderson
Наконец, если этот пост вам помог, не забудьте порекомендовать его, хлопая в ладоши! :)