未找到 Lodash 文件,但它在 index.html 中正确列出并且位于描述的目录中

Lodash file not found but it's listed correctly in index.html and is in the described directory

有人遇到过这个问题吗? Underscore 和 Lodash 之间有冲突吗?在过去,Underscore 似乎取代了 Lodash,所以我注释掉了 Underscore,在这种情况下删除了 Underscore,但不允许我访问我的 lodash 3.2 更新。

我的index.html:

<script src="../bower_components/angular/angular.js"></script>
<script src="../bower_components/lodash/lodash.js"></script>
<!--<script src="../bower_components/underscore/underscore.js"></script>-->
<script src="../node_modules/lodash/lodash.js"></script>

我在 bower_components 和 node_modules 中都有 lodash 和下划线。我从 node_modules 中去掉了下划线。我只想让 lodash 正常工作,我需要几个函数。

这里有些事情要注意。

首先,Underscore和Lodash都会定义相同的全局变量_.

因此,如果您同时添加两者,最后声明的将 "win"。发生这种情况只是因为浏览器按照它们出现的顺序评估声明的 script 标签。

这是不必要的,因为它会强制浏览器免费下载额外的字节。所以选择一个并删除其他

适用于同一个库的多个版本。因此,在您的情况下,最后声明的 lodash 版本将获胜。

其次,您似乎直接从 node_modules 引用了 lodash。您应该记住,来自 node_modules 的依赖项 通常 不会直接导入到您的 HTML 中。最常见的方法是使用像 WebPack 这样的工具,它可以让您将多个依赖项合并到一个文件中。

原因是 node_modules 依赖项可能会不可预测地嵌套。 bower_components,另一方面,将所有依赖项保留在根文件夹中,并在有冲突时让您选择。这更类似于浏览器的环境。您可以在此处阅读更多相关信息:http://blog.npmjs.org/post/101775448305/npm-and-front-end-packaging