无法读取属性' main'未定义的

时间:2014-05-22 12:00:24

标签: javascript node.js bower gulp

所以我的项目结构是我的根目录src中有一个www./目录,其中还包含我的bower.jsongulpfile.js和{将.bowerrc设置为directory。{/},{1}}

我的./www/bower/中有一个index.html,我设置了一个gulp任务,通过./src管理它,然后到凉亭包裹的wiredep

不幸的是,它将所有依赖项添加为./www目录中的所有依赖项,因此所有这些项目都以./src为前缀,最终../www/bower/的最终结果为index.html www目录,所以我摆弄了一些wiredep配置选项,如下所示:

gulp.task('bower', function () {
    gulp.src('./src/index.html')
    .pipe(wiredep({
        cwd: './www',
        bowerJson: require('./bower.json'),
        directory: '../.bowerrc'
    }))
    .pipe(gulp.dest('./www'));
});

但是我收到以下错误:

stream.js:94
    throw er; // Unhandled stream error in pipe.
            ^
TypeError: Cannot read property 'main' of undefined
    at findMainFiles (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\lib\detect-dependencies.js:53:37)
    at D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\lib\detect-dependencies.js:111:17
    at forOwn (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\node_modules\lodash\dist\lodash.js:1301:15)
    at Function.forEach (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\node_modules\lodash\dist\lodash.js:2595:9)
    at detect (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\lib\detect-dependencies.js:312:5)
    at wiredep (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\wiredep.js:178:39)
    at Transform._transform (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\wiredep.js:217:34)
    at Transform._read (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:184:10)
    at Transform._write (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:172:12)
    at doWrite (D:\Dropbox\University\MindFlipDOM\node_modules\wiredep\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:238:10)

那么我做错了什么?

2 个答案:

答案 0 :(得分:31)

同时尝试,这将确保下载缺少的必要模块。

bower install

答案 1 :(得分:14)

据我猜测,你搞砸了凉亭。很可能你卸载了一个依赖项而忘了保存。

你应该做什么:

bower uninstall <dependency> --save

你可能做了什么:

bower uninstall <dependency>

您可以通过执行uninstall <dependency> --save的方法来解决此问题,或者如果您不确定卸载了哪些组件,则可以编辑bower.json文件并删除未安装的组件。 (您可以检查bower_componenets目录中是否安装了依赖项)