我最近在 webpack / backbone / marionette 项目上做了 npm install ,一切都破了。我现在在应用程序运行时不断收到此错误:
未捕获的TypeError:无法读取属性' radio'未定义的
backbone.marionette.js第3328行
this.channel = _.result(this, 'channel') || Backbone.Wreqr.radio.channel(this.channelName);
Backbone :1.2.3(我也尝试了今天的1.3.1全新版本)
木偶:2.4.4
Webpack :1.12.14
我很幸运得到了我的旧node_modules的备份,并注意到牵线木偶库文件夹结构中的这种差异。
知道发生了什么事吗?我没有触及我的package.json我只是重新运行了npm install,看起来像是npm / node的新版本。
更新 我发现这个帖子至少有一个人有完全相同的问题,但我仍然没有解决方案 https://github.com/marionettejs/backbone.marionette/issues/2559
答案 0 :(得分:2)
我通过在webpack配置文件中添加别名来解决这个问题。
alias: {
backbone: path.join(__dirname, 'node_modules', 'backbone', 'backbone')
}
我注意到webpack在其输出文件中包含了多个backbone.js副本(如果没有别名)。
答案 1 :(得分:1)
帮助将package.json
中的代表设置为:
"dependencies": {
"backbone.marionette": "^2.4.4",
"jquery": "^2.2.1",
"underscore": "^1.8.3"
}
(完全删除了主干部分)