骨干木偶和 Webpack - 未捕获的类型错误:无法读取未定义的属性“收音机”
Posted
技术标签:
【中文标题】骨干木偶和 Webpack - 未捕获的类型错误:无法读取未定义的属性“收音机”【英文标题】:Backbone Marionette and Webpack - Uncaught TypeError: Cannot read property 'radio' of undefined 【发布时间】:2016-06-18 13:32:50 【问题描述】:我最近在我的 webpack/backbone/marionette 项目上做了一个 npm install,但一切都失败了。我现在在运行应用程序时不断收到此错误:
Uncaught TypeError: Cannot read property 'radio' of undefined
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,并注意到 Marionette 库文件夹结构中的这种差异。
知道发生了什么吗?我没有碰过我的 package.json,我只是重新运行了 npm install,看起来像是一个新版本的 npm/node。
更新 我发现这个帖子至少有一个人有完全相同的问题,但我仍然没有解决方案 https://github.com/marionettejs/backbone.marionette/issues/2559
【问题讨论】:
【参考方案1】:帮助将package.json
中的部门设置为:
"dependencies":
"backbone.marionette": "^2.4.4",
"jquery": "^2.2.1",
"underscore": "^1.8.3"
(完全移除主干层)
【讨论】:
【参考方案2】:我通过在我的 webpack 配置文件中添加别名解决了这个问题。
alias:
backbone: path.join(__dirname, 'node_modules', 'backbone', 'backbone')
我注意到如果没有别名,webpack 会在其输出文件中打包多个主干.js 副本。
【讨论】:
以上是关于骨干木偶和 Webpack - 未捕获的类型错误:无法读取未定义的属性“收音机”的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的类型错误:WEBPACK_IMPORTED_MODULE_1__.default 未定义(React、SASS、SCSS)