设置包裹时我做错了什么?有什么方法可以加快速度吗?
{
"name": "testing node",
"version": "0.0.0",
"description": "",
"main": "app.config.js",
"dependencies": {
"babel-core": "^6.17.0",
"babel-loader": "^6.2.0",
"babel-plugin-add-module-exports": "^0.1.2",
"babel-plugin-react-html-attrs": "^2.0.0",
"babel-plugin-transform-class-properties": "^6.3.13",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-stage-0": "^6.3.13",
"react": "^0.14.6",
"react-dom": "^0.14.6",
"webpack": "^1.12.9",
"webpack-dev-server": "^1.14.1",
"mysql": "*"
},
"devDependencies": {},
"scripts": {
"dev": "webpack-dev-server --content-base src --inline --hot",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
当我在文件夹中运行时
npm install
我得到以下内容,可能需要数小时才能完全设置:
这不是一般的计算或硬件问题。比较速度如下:
运行haversine
计算非索引mysql表中超过100万条记录的所有距离所花费的时间要少得多。 (计算)
在极短的时间内下载Linux(双层DVD ISO)的完整安装。 (带宽)
我怀疑我的packages.json
或我正在运行的命令npm install
出了问题。从图像中,似乎有许多尝试来检索相同的文件。可能有办法迫使npm
从更稳定的镜子中检索?可能它默认使用的镜像选择是不是很难?只是一些建议 - 我不知道具体的原因,这就是我要问的原因。
我的Linode,Digital Ocean和VULTR盒子上也会出现这个问题 - 所以我怀疑它是npm
特有的东西,我使用的方式(缺少的东西)或我的packages.json
答案 0 :(得分:22)
我能够从评论部分解决这个问题;概述下面的过程。
我使用你的package.json和npm v3.5.2以及node v4.2.6在不到1分钟的时间里安装了模块。我建议你更新node和npm。
v1.3.0甚至没有在v3上引入平坦的依赖关系来解决许多恼人的问题
LINKIWI声明:
一般来说,不要依赖包管理员来维护最新的软件。我强烈建议从apt中清除你安装的node / npm组合,并按照nodejs.org上的说明安装最新版本。
根据他们的建议,我注意到在检索当前非常过时版本的nodejs
和npm
>使用apt
或yum
的版本(取决于操作系统主程序包管理器)。
nodejs
和npm
为了解决这个问题,尽可能减少头痛,我运行了以下命令(在Ubuntu上):
apt-get purge --auto-remove nodejs npm
这清除了古代nodejs
和npm
的系统以及不再需要的所有依赖项
nodejs
和兼容的npm
下一个目标是获取nodejs
和npm
的当前版本,我可以直接从here获取nodejs
并编译或使用二进制文件,但是这不会让我根据需要轻松交换版本(取决于项目的年龄)。
我遇到了一个名为nvm的优秀软件包,它(到目前为止)似乎很好地管理了这个任务。要安装nodejs
版本7的当前稳定最新版本:
安装nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
来源.bashrc
source ~/.bashrc
使用nvm安装nodejs
7.x
nvm install 7
安装完成后,我对npm
的快得多的性能感到惊喜,现在它还显示了一个非常好的进度条,同时还在阻止包裹。
对于那些好奇的人来说,npm
的当前版本(截至此日期)应该如下所示(如果它没有,你可能需要更新它):
不要使用您的操作系统包管理器来安装NODE.JS或NPM - 您将得到非常糟糕的结果,因为似乎没有操作系统保持这些包(甚至不接近)当前。如果您发现npm
运行缓慢并且它不是您的计算机或互联网,则很可能是因为严重过时的版本。< / p>
答案 1 :(得分:4)
我正在使用Linux,并且拥有nvm
并可以使用7个以上版本的节点
根据我的经验,我在最新的项目中遇到过相同的情况(实际上不是几个小时,而是几分钟,因为每小时的项目我不能等上几个小时:))
免责声明:在您了解缓存清理的工作原理之前,请不要尝试以下选项
npm cache clean --force
然后对我来说一切正常,所以看起来npm的缓存有时会与不同版本的Node混淆。
可以找到Npm缓存的官方文档 here
答案 2 :(得分:1)
问题:如果您不及时更新,NPM效果不佳。 然而,过去,我已经打破了最新版本。
解决方案:正如Kraang所提到的,使用节点版本管理器nvm及其--lts标志
安装它:
curl -o- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
然后经常使用它来升级到NPM的最新“长期支持”版本:
nvm install --lts
大警告:当您获得新的npm版本时,您可能需要重新安装所有软件包。
答案 3 :(得分:1)
我从您的屏幕截图中看到您正在Windows上使用WSL。而且,Windows附带了病毒扫描程序,而病毒扫描会使NPM安装非常慢!
在安装过程中添加免除项或禁用病毒扫描可以大大加快其运行速度,但是鉴于存在恶意NPM软件包的可能性,这可能是不可取的
一个链接建议三倍的安装时间https://ikriv.com/blog/?p=2174
虽然我自己还没有进行广泛的介绍
答案 4 :(得分:1)
安装 nvm 并尝试它应该会有所帮助,使用以下命令:-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
答案 5 :(得分:0)
我遇到了同样的问题,我在nodejs version: 8.9.4
和npm version: 5.6.0
。
我在网上尝试了很多解决方案,包括这篇文章的解决方案,没有一个对我有用,然后我找到了解决问题的yarn package manager,所以如果一切都失败了,我想&#34; yarn&#34;值得一试。
答案 6 :(得分:0)
我在Debian上遇到了同样的问题,毛线是我的解决方案。
答案 7 :(得分:0)
我遇到了这个问题,因此SO中的解决方案都没有帮助。我想通了,因此我将其发布在这里,以防其他人遇到类似的问题。
我试图在亚马逊实例上运行npm i。问题最终是由于linux仅打开一定数量的端口,而当我运行npm时,它打开的速度超过一千,连接到注册表以下载所有软件包。这样就可以了,但是只需冻结15分钟即可。然后将发生超时,并最终将其移至另一个端口。因此,在AWS的安全组中,我添加了一个规则,即仅将TCP设置为0.0.0.0/0的所有TCP,让npm打开任意数量的出站连接并对其进行修复。
答案 8 :(得分:0)
此链接帮助我boost npm installs。 强制npm在https上使用http并禁用进度显示。
答案 9 :(得分:0)
我有类似的问题。我对某些解决方案感到困惑,使我无法为不同的用户显示不同的版本。 如果您有任何问题,我会先检查您使用节点的任何实现的每个帐户
最后,此解决方案似乎可以100%解决此问题,这使我确信我的版本是通用的,无论我想使用什么用户权限:
sudo yum update
sudo yum install build-essential checkinstall libssl-dev
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.1/install.sh | bash
(sudo) nvm --version
(sudo) nvm ls-remote
(sudo) nvm install [version.number]
如果仍然有问题,请尝试在/ usr / local / bin目录中查找。如果找到名为node的大型二进制文档或名为npm的文件夹,请将其删除。
rm /usr/local/bin/node
rm -r /usr/local/bin/npm
就我个人而言,在删除这些帐户之前,我的两个用户帐户使用的是通过nvm正确安装的最新版本的node / npm,而我的第三个帐户显然仍然仍然使用较旧的node和npm安装,因此仍然很顽固位于我的/ usr / local / bin /目录中。一旦使用上述两个命令删除了这两个帐户,该有问题的用户帐户就会隐式开始运行正确的安装,并使所有三个帐户互为预期的版本。
(使用Centos 7 Blank x64时实现。上面使用的某些源代码最初是由“ phoenixNAP全球IT服务” 1提供的)
答案 10 :(得分:0)
我们也遇到过类似的问题(我们在公司代理后面)。至少在我们的詹金斯版本上更改为yarn会有很大的不同。
“ npm install”和“ yarn install”的结果之间有一些细微的差别-但是没有什么伤害我们的。
答案 11 :(得分:0)
加快npm安装速度的一种简单解决方案是在AWS上启动一台功能强大的计算机,并使用它编译您的项目并将代码发回给您。
我正在对其进行试验,发现运行npm install的时间大大减少了。我找到了可以轻松执行上述命令的工具https://stormyapp.com
答案 12 :(得分:-3)
我注意到的一件事是,如果您在新项目(文件夹)中工作,则必须为特定路径重新配置代理设置
Cd(将终端窗口路径更改为目标文件夹。
npm config set proxy http://(ip address):( port)
npm config set https-proxy http://(ip address):( port)
npm install -g @ angular / cli