NodeJS 为什么我的npm需要几个小时来安装依赖项?

uurv41yg  于 2023-08-04  发布在  Node.js
关注(0)|答案(2)|浏览(252)

当我不得不开始一个网络项目的时候,我畏缩了。我使用yeomangulp-angular生成器来设置我的工作流程。npm install从来没有一次成功而没有失败过。
此外,它需要任何从一个良好的3-4个小时对我的平均互联网连接的一个项目被设置。难道这不违背了工具的全部目的吗?我最终花了比没有npm时更多的时间等待。它还为每个项目安装类似的软件包(~ 120 MB的膨胀)。
我知道有像npm_lazy和缓存之类的工具,但这些工具只会使前端工具变得更加复杂。
是什么让npm如此低效?

xzabzqsa

xzabzqsa1#

我也能感受到你的痛苦。。如果你正在积极开发一个新的nodejs项目,你希望总是使用所有上游npm包的最新版本,那么在你准备发布之前,请避免在package.json文件中提及任何依赖项。我们遇到的这种减速是由于不必要地将这些上游包存储在您的项目目录中的dir /node_modules/中,直到您发布应用程序才有用。
这里我在package.json文件中没有提到上游包:

{
    ... other tags here ...
    "dependencies" : {

    }
}

字符串
另外,使用-g标志全局安装项目的上游npm包,如下所示:

npm install -g some_cool_package


所以这些包对你的项目是可用的,但并不存在于它的根目录中,这会降低你的工作效率。同时,不发布

npm install


而在nodejs项目根目录中,因为所有上游npm包都位于由环境变量NODE_PATH定义的全局安装目录中

echo $NODE_PATH


其值类似于

/home/stens/node-v5.3.0/lib/node_modules


这是全局npm包存储位置,当您使用-g标志安装npm包时会填充该位置。这个$NODE_PATH将被所有的上游npm包所膨胀,而不是存储在nodejs app /node_modules/目录中
在这种模式下发展摆脱这个包袱...当你准备好分发时,用你的上游npm包填充你的package.json文件,并发出你的npm安装来填充目录/node_modules/...当然,将node_modules添加到.gitignore中,这样就不会将dir发送到git中
您也可以通过清空package.json文件的“dependencies”标签并删除目录/node_modules/.直到你准备好分发

aiqt4smr

aiqt4smr2#

npm不是低效的,如果你的连接不够好,你可以切换到一个现代的Wi-Fi互联网连接,我在安装Next.jsRectvite@latest时经历了6次以上,但每当我切换我的Wi-Fi连接时,它会在1分钟内安装它们,至少需要2- 3小时才能弹出超时错误而不安装。

相关问题