添加Java脚本库作为npm依赖关系还是简单地将它们包含在HTML中有什么区别?

看看npm 星标包,我发现像Gruntlodash下划线这样的项目是可用的。

我一直使用这些经典的方式:

 <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。

http://bower.io/

它有相同的想法

 npm install packageName 

除了它

 bower install packageName 

还有安装的–save和–save-dev版本

鲍尔从github抓取最新的代码,你也可以指定版本。

而不是package.json,你有一个bower.json,所以如果你给了一个空的依赖的项目:

 bower install 

然后凉亭将去抓住依赖指定的版本和繁荣你离开! 你有一个bower_components目录来保存你的整个依赖树。

npm为前端!