关注npm
starred packages我发现有些项目如 Grunt , lodash 或下划线可以使用。
我总是以经典的方式使用它们:
<script src="js/lib/lodash.min.js"></script>
是什么让它与众不同?如何在node_modules
包中使用它们?
答案 0 :(得分:3)
一方面,npm
是用于为Node安装软件包的Node工具。包是模块的集合。在Node中,模块加载了require
调用,这是Node提供的全局函数。
另一方面,<script>
是浏览器加载JavaScript代码时使用的基本机制。
这似乎是互斥的,但npm
也可用于安装旨在在Node和浏览器中运行两者的软件包。在这种情况下,我们使用Node的require
从Node中的包加载模块,但是我们可以使用<script>
或Browserify或RequireJS在浏览器中加载相同的模块。在浏览器中使用什么方法实际上取决于包的设计方式。如果文档不好,您必须阅读文档以了解或阅读源代码。我设计了一个以这种方式工作的npm
包。您可以使用Node的require
在Node中加载它,并使用RequireJS在浏览器中加载它。
npm
甚至可用于安装旨在在浏览器中运行 的软件包。在这种情况下,npm
只是一种方便的传递和依赖机制。我有这样设计的另一个包。它突出显示它不能在Node中运行。这是npm
的公认用法,目前有一些提案(here和here)可以使npm
更好地处理此类情景。
答案 1 :(得分:1)
节点模块包旨在与nodejs中的应用程序一起使用,而不是与其他基于Web的应用程序一起使用。正如您在java应用程序中add reference in .Net project或add jar in your classpath一样,与使用特定功能类似,我们使用npm将模块添加到我们的nodejs应用程序中。
由于node.js不仅仅是关于Web开发,而且是来自服务器端的JavaScript,所以这样有意义。
答案 2 :(得分:1)
如果你想在你的html中添加JS dependancies并使用类似于npm的方法,你应该查看bower。
它有相同的想法
npm install packageName
除了
bower install packageName
还有安装的 Bower从github获取最新代码,您也可以指定版本。 而不是package.json你有一个bower.json,所以如果给你一个空的依赖项目: 然后凉亭将去抓住依赖性也指定版本并且繁荣你们关闭!您有一个bower_components目录,用于保存整个依赖树。 前端的npm! bower install