Я изменяю задачу в моем проекте с grunt на gulp и испытываю проблемы с репликацией следующей задачи:
module.exports = function(grunt) {
grunt.initConfig({
browserify: {
app: {
src: ["./app/**/*.js", "./app/**/*.html"],
dest: "./temp/app.js",
options: {
browserifyOptions: { debug: true },
transform: [
["babelify", { "presets": ["es2015"] }],
["stringify", { appliesTo: { includeExtensions: [".html"] }, minify: true}]
]
}
}
}
});
);
Существует несколько руководств по созданию задач с несколькими точками входа с использованием винила-источника-stream, glob и т. д., однако, все они также создают несколько выходных данных, например, следующая задача:
gulp.task("app", function(done) {
glob("./app/**/*.{js,html}", function (err, files) {
if (err) done(err);
var tasks = files.map(function (entry) {
return browserify({
entries: [entry],
transform: [
["babelify", { "presets": ["es2015"] }],
["stringify", { appliesTo: { includeExtensions: [".html"] }, minify: true }]
]
})
.bundle()
.pipe(source(entry))
.pipe(gulp.dest("./temp"));
});
es.merge(tasks).on("end", done);
});
});
Как мне изменить задачу gulp, чтобы получить тот же результат, что и в grunt (one.вывод файла js)?
РЕДАКТИРОВАТЬ: После некоторого копания я сам нашел решение ... Во-первых, вам нужно отредактировать один из ваших файлов (в моем случае app.js) и вызвать импорт для каждого файла, который выхотите связать его с ... и затем изменить gulp следующим образом:
gulp.task("app", function () {
return browserify({
debug:true,
entries: ["./app/app.js"],
transform: [
["babelify", { "presets": ["es2015"] }],
["stringify", { appliesTo: { includeExtensions: [".html"] }, minify: true }]
]
})
.bundle()
.on("error", function (err) { console.error(err); this.emit("end"); })
.pipe(source("app.js"))
.pipe(buffer())
.pipe(gulp.dest("./temp"))
.pipe(uglify())
.pipe(rename({ extname: ".min.js"}))
.pipe(gulp.dest("./temp"));
});
, в этом случае он выводит как app.js, так и его уменьшенную версию - app.min.js