npm是否也被用来pipe理客户端的依赖关系?

我正在使用Composer来pipe理我的PHP依赖关系,并且很乐意对我的JS依赖关系做同样的事情。

我偶然发现了Node.js的 NPM ,想知道它是否也可以用作客户端依赖pipe理器。

例如,我可能想要pipe理应用程序的/public/vendor/文件夹中的客户端库依赖项,并安装/更新这些依赖项,就像我使用PHP的composer installcomposer update

对我来说是npm

不是直接的,尽pipe通过npm(例如socket.io)安装的一些软件包会发出客户端的Javascript库。

还有另外一个叫做Bower的工具,它是为客户端库devise的。 也许还有其他的,但这是我见过的最多的。 它由Google的Yeoman工具在客户端库内部使用。

这里有一个热烈的案例 ,以总结结束:

所有的软件包pipe理者都会做相同的事情。 移动文件。 select一个包pipe理器,它做得如何。 所有的构build工具都做相同的事情。 转换文件。 select你的构build工具,他们如何做到这一点。 如果你现在不使用npm只是因为有人告诉你这不是客户端。 打他们,说:“所有的事情。”

我自己的看法:客户端和节点可以经常使用通用的代码。 因此有一天 ,客户端和节点项目占用相同的存储库是明智的。 无论是哪个版本库,它(理想情况下)都将获得临界质量,并取代所有其他客户端和节点存储库。 而npm已经如此完备,为什么不能成为这个存储库?

NPM是专门为pipe理在Node.js(服务器端)下运行的JavaScript包而devise的。 现在,当npm公共资源库中有〜80000个包时,出现了原始devise(例如,平面命名空间问题)的一些问题,并出现了替代的JavaScript包pipe理器。

直到最近才打算解决所有这些JavaScript服务器端/客户端/端软件包依赖性问题的是使用GitHub存储库及其命名空间的component包pipe理器。

这篇文章是在开始: http : //tjholowaychuk.tumblr.com/post/27984551477/components

组件公共存储库中目前有大约2500个包。

与其他JavaScript程序包pipe理器进行简短的比较可以在这里find: https : //github.com/component/guide/blob/master/component/vs.md

最近有一篇关于NPM的博客文章: http : //blog.npmjs.org/post/101775448305/npm-and-front-end-packaging

“npm只适用于服务器端JavaScript!”

也不是这样。 你的包可以包含任何东西,无论是ES6,客户端JS,甚至HTML和CSS。 这些东西自然会和JavaScript一起出现,所以把它们放在那里。

如果它与JavaScript相关,则以npm作为主机。 一旦可用,使用生态系统在全球范围内创build“迷你登记”,并完成自定义search索引和显示特征。

所以,是的。 把客户端的JavaScript东西放在NPM中是非常好的,他们会改进对这个的支持。