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

标签 javascript underscore.js lodash

有人遇到这个问题吗? 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/

相关文章:

javascript - lodash mapValues 异步

javascript - 如何用 lodash 重构这个双循环?

javascript - jQuery 无法提交使用 jQuery 加载的表单

javascript - Service Worker 的存储限制是多少?

javascript - Rails 4 - 用于具有简单形式的依赖字段的 JS

javascript - 在连续函数中使用 jQuery 的加载

javascript - React 使用 debounce 和 setState

javascript - 无法触发 Bootstrap 确认

javascript - 将 NodeJS 缓冲区转换为具有函数的 JavaScript 对象

javascript - 自定义 Underscore.js 的 range()