javascript - 为 rewireify 创建 gulp 任务

标签 javascript gulp

试图将其放入监视任务中?

browserify -e test/spec/suite.js -t reactify -t rewireify -o test/spec/bundle.js

目前我的 gulp 文件是这样的:

var gulp = require('gulp'),
requireDir = require('require-dir');

requireDir('./gulp-tasks');

gulp.task('default', ['browserify','css','karma'], function () {
gulp.watch('../App/src/**/*.js', ['browserify']);
 gulp.watch('../App/src/**/*.css', ['css']);
gulp.watch('../App/src/tests/**/*.js', ['rewireify']);
gulp.watch('../App/src/tests/**/*.js', ['karma']);
});

gulp.task('production', ['react', 'css']);

rewireify.js:

var gulp = require('gulp'),
concat = require('gulp-concat'),
rewireify = require('rewireify');

gulp.task('css', function () {
gulp.src([
    './App/src/tests/**/*.js'
])
    .pipe(concat('bundletest.js'))
    .pipe(rewireify())
    .pipe(gulp.dest('test/spec/bundle.js'));
});

当我运行 gulp 任务时出现错误:

TypeError: Cannot read property 'ignore' of undefined
    at rewireify (d:\Source\Workspaces\\node_modules\rewireify\lib\index.js:12:20)
at Gulp.<anonymous> (d:\Source\Workspaces\Call Parents\DEV\CG.CallParents.Web\Areas\Beta\gulp-tasks\rewireify.js:10:15)
at module.exports (d:\Source\Workspaces\\node_modules\orchestrator\lib\runTask.js:34:7)
at Gulp.Orchestrator._runTask (d:\Source\gulp\node_modules\orchestrator\index.js:273:3)
at Gulp.Orchestrator._runStep (d:\Source\\gulp\node_modules\orchestrator\index.js:214:10)
at Gulp.Orchestrator.start (d:\Source\Workspaces\\node_modules\gulp\node_modules\orchestrator\index.js:134:8)
at C:\Users\matthew.harris\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:129:20
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)

有人知道我怎样才能让它工作吗?

最佳答案

要记住的关键点是 rewireify(喜欢这个名字)是一个转换:

The most powerful feature in Browserify are source transforms. A source transform is a stream injected between the resolved module and the content that is returned. A simple use case for using a source transform is compiling CoffeeScript to JavaScript.

http://blakeembrey.com/articles/2013/09/introduction-to-browserify/

无论如何,我的建议是将 gulp-concat 部分分离到它自己的任务中,然后创建一个 rewireify 任务,您将在之后调用该任务:

gulp.task("build-functional", function () {
    return browserify('some-gulp-concatenated.js', {})
        .transform(rewireify, rewireifyOptions)
        .bundle()
        .pipe(gulp.dest('test/spec/bundle.js'))
}

查看 here再举个例子。

关于javascript - 为 rewireify 创建 gulp 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31511042/

相关文章:

html - 如何连接 html 文件并使用 gulp 插件在 head 部分注入(inject) css 链接?

javascript - 使用 Karma : "module is not defined" 进行 Angular Testing

javascript - 如何避免在此循环中创建函数?

javascript - JavaScript 中的变量作用域

javascript - 谷歌地图覆盖在特定缩放级别消失

foreach 循环内的 Javascript .match 和 .test

PHP/APACHE : can i auto_prepend to a . js 文件?

javascript - 如何使 gulp-rename 重命名具体的单个文件?

javascript - 总线错误: 10 using gulp watch,基础和sass

javascript - Gulp 重命名和基本路径