我第一次使用webpack。当需要主干时,似乎没有正确加载下划线,因为我在浏览器的Uncaught TypeError: _.create is not a function
中收到错误backbone.js:1892
。
main.js
'use strict';
import Backbone from 'backbone';
Backbone.$('body'); // Doesn't error
Backbone.View.extend({}); // Gives error
我的webpack配置可在此boilerplate repo中找到。
└─┬ backbone@1.3.3
└── underscore@1.8.3
* 更新 *当我使用主干v1.2.3
时,它运行正常。 v1.3.0+
会导致此错误。
答案 0 :(得分:0)
原来这是一个问题,因为npm3的加载依赖项的方法与我的webpack配置相结合。
我正在使用modulesDirectories
属性的目录。
modulesDirectories: [
path.join(__dirname, 'node_modules')
]
由于npm3以平面方式加载依赖项(全部位于根node_modules
目录,并且版本冲突被放入node_modules
子目录下的模块目录中,因此webpack始终导入下划线1.7.x(我项目中另一个模块的依赖项)而不是骨干网子区域中的1.8.3。
降级到主干v1.2.3
只能使用,因为它使用了我的其他依赖项使用的相同版本的下划线,所以没有冲突。
我完全删除了modulesDirectories
,因为它has a default。我也可以将其更改为modulesDirectories=['node_modules']
以获得相同的效果。