2015-06-25 30 views
2

我遇到问题。我已经创建了自己的种子:https://github.com/damirkusar/leptir-angular-seed吞噬,browserify和更多。无法读取gulp-browserify中未定义的属性'emit'

一切工作正常,因为我有好主意更新节点从10.32到12.5,我得到下面的错误。我认为这是从那时起。我在另一台机器上尝试过,设置相同,错误也一样。

因此,NPM后安装和亭子安装我开始与应用:

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年编辑六月-25 14:23

我使用造成的问题,我一饮而尽文件中像这样的模块:其中browserifyies这些app.js文件

// 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; 
}); 

和它的内容:

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

'tr'应该是什么?错误通常意味着你的代码中有语法或语义错误。 – marcel

+0

嗯..我不知道什么tr应该是..它在浏览模块猜猜..它不是我的代码..我没有这样的代码..可能是因为在browserify模块中有一个错误gulp-browserify取决于? – damir

+0

我很确定,那会导致错误。但我必须看到更多的代码来帮助你。我现在应该是什么'tr'应该是... – marcel

回答

1

在一台Windows机器上(而不是我的mac),它向我展示了一个更好的错误信息。

我引用了bower包,其中没有安装..但完全忘记从package.json和bower.js中删除它。UPDATE -

  • 角平移存储cookie的
  • 角平移存储本地

,所以我在其中所引用的以下软件包上述文件中删除代码2015年6月27日 - 22:41 -

我看到gulp-browserify被gulpjs列入黑名单,所以我认为它更好地摆脱它,因为我还面临风的问题ows机器。我没有使用gulp-browserify,而是使用乙烯基转换的plain 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

+0

@Marcel,非常感谢你的帮助和时间.. – damir

2

"...but in fact, otherwise i am not using this module which causes the error." - 达米尔

模块具有依赖性太大。这似乎是其他模块使用的其中一个模块的问题。

您可能正在使用的模块对旧版本的节点组件有依赖性。尝试让旧的回到bug修复。

+0

嗨马塞尔,我降级我的节点为10.32,我的npm为1.4.28,也移动了一些软件包旧版本的老提交,仍然同样的问题..如果我没有问得太多,你可以克隆回购,并安装节点包和凉亭,并运行与命令gulp应用程序?只是为了看看它是否在你的机器上工作?:)如果是的话,那么someting在我的机器上是错误的。如果没有,那么我不知道 – damir

相关问题