Backbone + Webpack`Uncaught TypeError:_. create不是函数`,下划线没有加载?

时间:2016-08-10 21:51:23

标签: backbone.js webpack

我第一次使用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+会导致此错误。

1 个答案:

答案 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']以获得相同的效果。