我遇到了问题。我创建了自己的种子:https://github.com/damirkusar/leptir-angular-seed有gulp,browserify等等。
一切正常,因为我有个好主意将节点从10.32更新到12.5,我收到以下错误。我认为这是从那时起。我也尝试了不同的机器,相同的设置,相同的错误。
所以,在npm install和bower安装之后,我正在启动应用程序:
gulp
或尝试使用
构建项目时gulp build
我收到此错误:
leptir-angular-seed/node_modules/gulp-browserify/node_modules/browserify/node_modules/module-deps/index.js:162
rs.on('error', function (err) { tr.emit('error', err) });
^
TypeError: Cannot read property 'emit' of undefined
at ReadStream.<anonymous> (/leptir-angular-seed/node_modules/gulp-browserify/node_modules/browserify/node_modules/module-deps/index.js:162:39)
at ReadStream.emit (events.js:107:17)
at fs.js:1618:12
at FSReqWrap.oncomplete (fs.js:95:15)
这里也是package.json的链接:https://github.com/damirkusar/leptir-angular-seed/blob/450ffe99943036cd5a670e54ec3884c02bd7bb8a/package.json。
但幸运的是,业力开始执行测试并且所有测试都在通过..
也许某些版本没有真正支持? 有没有人知道导致这个问题的原因是什么?
- 编辑2015年6月25日14:23
我正在使用导致我的gulp文件中的问题的模块,如下所示:
// Browserify task
gulp.task('browserify', function () {
gulp.src(paths.browserify[0])
.pipe(browserify({
insertGlobals: true,
debug: true
}))
// Bundle to a single file
.pipe(concat('bower.js'))
// Output it to our dist folder
.pipe(gulp.dest(paths.destination_public))
.pipe(refresh(lrServer)); // Tell the lrServer to refresh;
gulp.src(paths.browserify[1])
.pipe(browserify({
insertGlobals: true,
debug: true
}))
// Bundle to a single file
.pipe(concat('app.js'))
// Output it to our dist folder
.pipe(gulp.dest(paths.destination_public))
.pipe(refresh(lrServer)); // Tell the lrServer to refresh;
});
浏览这些app.js文件及其内容:
require('./modules/core');
require('./modules/core');
和bower.js及其内容:
'use strict';
require('jquery');
require('bootstrap');
require('moment');
require('underscore');
require('angular');
require('angular-animate');
require('angular-bootstrap');
require('angular-bootstrap-tpls');
require('angular-cookies');
require('angular-mocks');
require('angular-resource');
require('angular-ui-router');
require('angular-ui-utils');
require('angular-translate');
require('angular-translate-loader-static-files');
require('angular-translate-loader-url');
require('angular-translate-storage-cookie');
require('angular-translate-storage-local');
非常感谢你
答案 0 :(得分:2)
"...but in fact, otherwise i am not using this module which causes the error."
- damir
模块也有依赖关系。它似乎是其他模块使用的其中一个模块的问题。
您使用的模块可能依赖于旧版本的节点组件。尝试将旧版本恢复,直到错误修复为止。
答案 1 :(得分:1)
在Windows机器上(而不是我的Mac),它向我显示了更好的错误消息。
我引用了未安装的bower包..但完全忘了将它从package.json和bower.js中删除。
所以我删除了上面引用了以下包的文件中的代码:
- 更新2015年6月27日 - 22:41 -
我看到gulp-browserify被gulpjs列入黑名单,所以我认为最好摆脱它,因为我在Windows机器上也遇到了问题。而不是使用gulp-browserify,我使用简单的browserify与乙烯基变换。
首先,用这个更新你的package.json:
"browserify": "9.0.4",
"vinyl-transform": "1.0.0"
你知道,我正在使用这两个版本,这是因为对于较新的browserify版本,事情并没有真正起作用,所以为了确保它在我更新我的软件包时也能正常工作,我将它们保留在这个版本中。
然后让我们更新我们的gulp文件。我们需要添加这两行:
var browserify = require('browserify'),
transform = require('vinyl-transform');
我的新任务看起来像这样:
gulp.task('browserify', function () {
var browserified = transform(function(filename) {
var b = browserify(filename);
return b.bundle();
});
return gulp.src(paths.browserify)
.pipe(browserified)
.pipe(gulp.dest(paths.destination_public));
});
它现在更短更清洁了。我的路径配置如下..
var paths = {
...
browserify: ['./public/bower.js', './public/app.js'],
...
destination_public: './dist/'
};
现在我的种子正在以同样的方式处理mac和windows。 https://github.com/damirkusar/leptir-angular-seed