添加Java脚本库作为npm依赖关系还是简单地将它们包含在HTML中有什么区别?
看看npm
星标包,我发现像Grunt , lodash或下划线这样的项目是可用的。
我一直使用这些经典的方式:
<script src="js/lib/lodash.min.js"></script>
是什么让它不同,我将如何使用它们在node_modules
包中获得?
一方面, npm
是为节点安装软件包的Node工具。 包是模块的集合。 在Node中,模块加载了一个require
调用,这是一个由Node提供的全局函数。
另一方面, <script>
是浏览器用来加载JavaScript代码的基本机制。
这似乎是相互排斥的,但是也可以使用npm
来安装devise为在Node和浏览器中运行的软件包。 在这种情况下,我们使用Node的require
从Node中的包加载模块,但是我们可以使用<script>
或者Browserify或者RequireJS在浏览器中加载相同的模块。 在浏览器中使用什么方法真的取决于包的devise。 如果文档不好,您必须阅读文档才能知道或阅读源代码。 我devise了一个以这种方式工作的npm
包。 您可以使用Node的require
在Node中加载它并使用RequireJS将其加载到浏览器中。
npm
甚至可以用来安装只能在浏览器中运行的软件包。 在这种情况下, npm
只是一个方便的交付和依赖机制。 我有这样devise的另一个包。 它带有一个突出的注意事项,它不能在Node中运行。 这是npm
一个可以接受的用法,目前有提议( 在这里和这里 )使npm
在处理这种情况时更好。
节点模块包旨在与nodejs中的应用程序一起使用,而不是其他基于Web的应用程序。 当您在.Net项目中添加引用,或者在java应用程序的类path中添加jar时 ,类似于使用特定function,我们使用npm将模块添加到我们的nodejs应用程序中。
由于node.js不仅是关于web开发,而且是来自服务器端的JavaScript,所以这样做是有道理的。
如果你想在你的HTML中添加JS依赖,并使用类似npm的方法,你应该检查一下bower。
它有相同的想法
npm install packageName
除了它
bower install packageName
还有安装的–save和–save-dev版本
鲍尔从github抓取最新的代码,你也可以指定版本。
而不是package.json,你有一个bower.json,所以如果你给了一个空的依赖的项目:
bower install
然后凉亭将去抓住依赖指定的版本和繁荣你离开! 你有一个bower_components目录来保存你的整个依赖树。
npm为前端!