В моем проекте я собираю несколько пакетов из исходных файлов во вложенных каталогах, используя накопительный пакет.
У меня был gulpfile со следующим кодом, который работал нормально:
function build_app_js(file, name) {
return gulp.src(file)
.pipe(sourcemaps.init())
.pipe(rollup({format:'iife'}))
.pipe(terser())
.pipe(rename(name + '.js'))
.pipe(rename({suffix: '.min'}))
.pipe(sourcemaps.write())
.pipe(gulp.dest(js_apps_dir))
}
// call the above for multiple sets of file+app_name
Но потом яизменил одну из зависимостей в моем коде ES6, к которой я получил доступ по относительному пути, в пакет npm, так что теперь он находится в node_modules.Для решения этой проблемы необходим плагин, поэтому я изменил вышеупомянутое на это:
.pipe(rollup({plugins: [resolveNodeModules()], format:'iife'}))
Однако это просто не работает.
Я обращался к документам свертки на gulpи адаптировал пример к моему случаю, так что теперь он выглядит следующим образом:
function build_app_js(file, name) {
return rollup.rollup({
input: file,
plugins: [
resolveNodeModules()
]
}).then(bundle => {
return bundle.write({
file: js_apps_dir + '/' + name + '.js',
format: 'iife',
sourcemap: true
});
});
}
Это работает, но не имеет шага минимизации, и я не знаю, как его добавить.
В целом, это совершенно другая парадигма, чем использование pipe (), и я не знаю, как заставить оба работать вместе.
Пытаюсь ли добавить минификацию в синтаксисе Promise или обернуть функцию Promise таким образом, чтобы я мог использовать ее с pipe?