【发布时间】:2017-03-31 00:39:03
【问题描述】:
我正在尝试在我的 Gulp 文件中使用 Browserify,但似乎无论我如何设置,它总是会抛出一个错误,显示“dest.write 不是函数”。我最初使用 gulp-concat 开始这项任务:
gulp.task('scripts', function()
{
return gulp.src(['src/shared/js/one.js', 'src/shared/js/two.js', 'src/shared/js/*.js'])
.pipe(browserify()
.pipe(concat('main.js'))
.pipe(gulp.dest('dist/js'))
.pipe(browserSync.stream());
});
当我注释掉 browserify() 行时,一切正常。在谷歌搜索错误消息的解决方案时,我发现this page 有人链接到它,说“gulp 文档对这个解决方案赞不绝口”(here):
var gulp = require('gulp');
var browserify = require('browserify');
var transform = require('vinyl-transform');
var uglify = require('gulp-uglify');
gulp.task('browserify', function () {
var browserified = transform(function(filename) {
var b = browserify(filename);
return b.bundle();
});
return gulp.src(['./src/*.js'])
.pipe(browserified)
.pipe(uglify())
.pipe(gulp.dest('./dist'));
});
我进一步挖掘,发现 vinyl-transform 不能以这种方式与 Browserify 一起使用,因为没有写入流,而首选方法是使用 vinyl-source-stream。我现在正在尝试使用这个建议的解决方案,但仍然收到错误:
gulp.task('scripts', function()
{
return gulp.src(['src/shared/js/one.js', 'src/shared/js/two.js', 'src/shared/js/*.js'])
.pipe(browserify('src/shared/js/*.js', {
debug: true,
extensions: ['.js']
}))
.bundle()
.pipe(source('main.js'))
.pipe(buffer())
.pipe(gulp.dest('dist/js'))
.pipe(browserSync.stream());
});
以各种方式调整 browserify() 引用并没有改变任何东西。谁能告诉我我做错了什么?
【问题讨论】:
-
只是拼写错误
pipe(browserify()) )? -
遗憾的是没有。不知道当我在这里复制/粘贴它时它是如何被遗漏的,但我重新运行它,它仍然产生错误。
标签: node.js gulp bundler browserify gulp-concat