有人遇到这个问题吗? 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 都会定义相同的全局变量,_
。
因此,如果您将两者相加,则最后声明的一个将“获胜”。发生这种情况的原因很简单,因为浏览器按照声明的 script
标记出现的顺序对其进行求值。
这是不必要的,因为它会强制浏览器免费下载额外的字节。因此选择一个并删除其他。
这也适用于同一库的多个版本。因此,就您而言,最后声明的 lodash
版本将获胜。
其次,您似乎直接从 node_modules
引用了 lodash
。您应该记住,node_modules
的依赖项通常不会直接导入到您的 HTML 中。最常见的方法是使用像 WebPack 这样的工具。 ,它允许您将多个依赖项组合到一个文件中。
原因是 node_modules
依赖项可能会变得不可预测的嵌套。另一方面,bower_components 将所有依赖项保留在根文件夹上,并在出现冲突时让您进行选择。这更类似于浏览器的环境。您可以在这里阅读更多相关信息:http://blog.npmjs.org/post/101775448305/npm-and-front-end-packaging
关于javascript - 未找到 Lodash 文件,但它在 index.html 中正确列出并且位于所描述的目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28554916/