纱线可以被认为是一种可行的选择,作为凉亭和npm的替代品吗?

问题描述:

我应该澄清一下,我对前端工具并不熟悉,所以如果我提出明显和愚蠢的问题,我很抱歉。纱线可以被认为是一种可行的选择,作为凉亭和npm的替代品吗?

到目前为止,我一直在使用的字体结束和新公共管理服务器端的凉亭,虽然每个提到的工具有它的优势,我的意思是平依赖管理亭子(从客户降低负荷)和嵌套的依赖关系管理npm(帮助版本控制很多),使用如此多的工具(webpack,browserify等)变得相当麻烦。我可能一直以错误的方式使用这些工具,并可能使用其中任何一个选项(我不知道),并且只是在表面上刮擦,我只是将这个answer作为我的经验法则,并且一直在做所以自从我读了它。如果我能将这两个至少减少到一个,那将是非常好的。

最近,我对纱线很感兴趣,并且围绕它的所有宣传看起来好像它已经做得很好,好像它会完全取代npm。当我阅读文档时,我发现了--flat选项,这让我想知道是否有可能将它用作更换软件?如果是这样,这意味着我可以有平面或嵌套的依赖管理器(通过只有多个json文件的服务器和前端)?

我真的很感激,如果有人能指出我在正确的方向!

+2

值得注意的是,从v3开始,[npm *试图*以更平坦的方式解决依赖关系](https://docs.npmjs.com/how-npm-works/npm3)(另请参阅[有什么区别npm 3 vs Bower?](http://stackoverflow.com/questions/32087425/what-is-the-difference-between-npm-3-vs-bower)) – Aurora0001

+0

@ Aurora0001是否意味着凉亭已经没有用了(或者至少在大多数任务中用yarn/npm代替)?感谢您的链接! – orustammanapov

这取决于你的确切用例,但是......可能是

目前,主要趋势似乎是针对Webpack和Browserify等模块捆绑软件(因此不论是npm还是Yarn),并远离Bower。你可以阅读NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. Webpack的情况的一个很好的概述,以及为什么你可能想要 Webpack而不是鲍尔的一些原因。

目前,您可能正在使用HTTP,它可以更快地生成一个JavaScript包文件,而不是很多源文件(就像Bower会发生的那样)。这就是为什么Webpack和Browserify如此受欢迎(其他原因) - 他们应该提高性能并简化开发很多。

附注:HTTP/2会降低模块捆绑的价值,因为多个请求将变得非常便宜。有关涉及HTTP/2的问题的更详细描述,请参见What is the value of using Webpack with HTTP/2

如果您使用npm或Yarn,嵌套依赖关系无关紧要 - 您的前端依赖关系将全部与Webpack/Browserify捆绑在一起,因此使用嵌套包的主要成本是占用更多空间和更多的下载时间。

由于npm v3和Yarn可以进行平面安装,所以不应该有任何问题。简而言之:你可能可以做到这一点,而其他许多人正在这样做。

+1

谢谢,提供的链接也非常有帮助! – orustammanapov

最近几天,Yarn受欢迎程度有上升的趋势,主要是由于几件事情与npm不同。

一,它是100%确定性的,即如果你从任何状态运行纱线,任何时候,1000倍,它仍将始终以相同的方式工作。 npm的安装是不确定的。如果您从各种状态运行它,它将安装不同的方式。

纱线也做了一些更好的缓存。事实上,它可以很好地实现安装时间的显着减少。大型应用程序的安装时间可缩短10倍。

纱线也默认锁定您的依赖。用npm shrinkwrap命令可以做到这一点,但如果你曾经维护过其中之一,那可能很麻烦。

+0

谢谢,我没有意识到npm安装的不确定性。 – orustammanapov