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

Javascript 未找到Lodash文件,但它是';s在index.html中正确列出,并且位于描述的目录中,javascript,underscore.js,lodash,Javascript,Underscore.js,Lodash,有人有这个问题吗?下划线和Lodash之间是否存在冲突?在过去,下划线似乎取代了Lodash,因此我注释掉了下划线,在本例中,下划线删除了下划线,但不允许我访问我的Lodash 3.2更新 My index.html: <script src="../bower_components/angular/angular.js"></script> <script src="../bower_components/lodash/lodash.js"></scr

有人有这个问题吗?下划线和Lodash之间是否存在冲突?在过去,下划线似乎取代了Lodash,因此我注释掉了下划线,在本例中,下划线删除了下划线,但不允许我访问我的Lodash 3.2更新

My 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_组件和node_模块中都有lodash和下划线。我从node_模块中取出下划线。我只是想让lodash工作,我需要一些函数。

这里需要注意一些事情

首先,下划线和Lodash将定义相同的全局变量

因此,如果您同时添加这两个选项,则最后一个声明的选项将“获胜”。发生这种情况的原因很简单,因为浏览器按照声明的
脚本
标记的出现顺序对其进行求值

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

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

其次,您似乎直接从
node\u模块
引用
lodash
。您应该记住,
node\u模块
中的依赖项通常不会直接导入HTML。最常见的方法是使用类似的工具,它允许您将多个依赖项组合到一个文件中


其原因是,
node\u模块
依赖关系可能会变得不可预测地嵌套<另一方面,code>bower_components
将所有依赖项保留在根文件夹中,并在发生冲突时让您进行选择。这与浏览器的环境更为相似。您可以在此处阅读更多信息:

删除对lodash早期版本的引用。lodash和下划线之间可能存在冲突,因为它们都使用相同的uu名称空间。感谢您的详细回复。这将在未来派上用场!