javascript - 添加 Java Script 库作为 npm 依赖项或简单地将它们包含在 HTML 中有什么区别?

标签 javascript node.js npm

查看 npm starred packages我看到可以使用 Gruntlodashunderscore 等项目。

我一直以经典方式使用它们:

<script src="js/lib/lodash.min.js"></script>

它有什么不同,我将如何使用它们在 node_modules 包中获得?

最佳答案

一方面,npm 是一个 Node 工具,用于为 Node.js 安装包。包是模块的集合。在 Node 中,模块通过 require 调用加载,这是 Node 提供的全局函数。

另一方面,<script> 是浏览器中用于加载 JavaScript 代码的基 native 制。

这似乎是相互排斥的,但 npm 也可用于安装旨在在 Node 和浏览器中同时运行的包。在这种情况下,我们使用 Node 的 require 从 Node 中的包加载模块,但我们可以使用 <script> 或 Browserify 或 RequireJS 在浏览器中加载相同的模块。在浏览器中使用什么方法实际上取决于包的设计方式。如果文档不好,您必须阅读文档才能知道或阅读源代码。我设计了一个以这种方式工作的 npm 包。可以使用Node的require在Node中加载,在浏览器中使用RequireJS加载。

npm 甚至可以用于安装旨在 在浏览器中运行的软件包。在这种情况下,npm 只是一种方便的传递和依赖机制。我有另一个这样设计的包。它带有一个突出的注释,即它不是在 Node.js 中运行的。这是 npm 的公认用法,目前有一些提案(herehere)可以使 npm 更好地处理这种情况。

关于javascript - 添加 Java Script 库作为 npm 依赖项或简单地将它们包含在 HTML 中有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22588091/

相关文章:

javascript - 利用 customElements 在 javascript 中创建页面构建框架

node.js - npm 错误!代码 烯醇本地

npm 脚本在 node_modules/.bin 中找不到文件

javascript - 通过exceljs模块读取Excel

javascript - 如何在 Javascript 中的某个限制后打破数组

javascript - 在用户第一次访问时强制 Service Worker 更新,而不是用户第二次访问

javascript - 在 for 循环 VueJS 中同步 API 调用

node.js - 如何在 nodejs 的 promise 中完成执行?

javascript - Visual Studio Code 自动完成/IntelliSense 不适用于 JavaScript

javascript - 使用函数、数组和循环理解 JS 编程代码