这个问题出现得很意外,之前用起来都正常,放假过后,一回来运行npm,立刻抛出一堆错误。
关键字:spawn ....ENOENT
找不到对应的路径或者没有权限。
系统:win10
node版本 v8.x
解决思路:
- 顺着报错原因去找是否是权限未开启
- 本地系统问题(毕竟不是正版自己心虚)
- node版本与win10是否不兼容,尝试将node降级
现在安装node都会自动带上npm,安装时确认带上了npm, 确认环境变量没有问题。 安装时右键菜单没有“以管理员身份运行”的选项。
系统重装是不可能重装的。不过看到网上有其他人说重装系统后解决了该问题。
只有尝试降级node了。 尝试了8.x版本中的几次降级后仍然出现该问题。于是大降版本至6.X。安装好配置好环境,OK,解决了。
步骤:
- 卸载node.js。进入控制面板,找到nodejs点击卸载。
- 找到c盘npm相关的文件夹,确定卸载干净。删除C:\Users\Administrator\AppData\Roaming下边的npm、npm-cache
- 重新安装nodejs
- 安装好,cmd进入命令行,输入
node -v
npm -v
如果出现版本号,跳到下面环境配置。如果出现问题,跳回到文章最初。
顺便在我的这台电脑上git bash 总是闪退,也是通过降级成1.9.x版本后解决的。复制替换文件尝试过,没有用。所以怀疑还是电脑系统本身有问题。还是要装正版系统,记得去找微软原版镜像,不然踩得坑真是太多
顺便附上win10下配置node环境的步骤:
- 运行node安装包.msi。 一路默认,确认带上了npm与添加path。安装完毕点击完成。
ctrl+R
运行cmd以管理员身份运行。 输入node -v
npm -v
后显示版本号。 - 配置npm的全局模块存放路径以及cache。在nodejs的安装主目录中新建文件夹:node_cache和node_global(此处我的安装路径是E:\Program Files\nodejs)
- 在cmd中输入命令:
npm config set prefix “E:Program Files\nodejs\node_global”
npm config set cache “E:Program Files\nodejs\node_cache”
复制代码
- 现在可尝试安装模块:选择安装express模块在命令行中输入:npm install express -g (-g表示全局安装即安装到node_global目录下)
- 查看系统环境变量:鼠标右键单击我的电脑→属性→高级系统设置→环境变量→在系统变量下新建NODE_PATH并输入“E:\Program Files\nodejs\node_global\node_modules”
- 以上步骤完成则可重新开启cmd,记得是重新开启一个cmd来进行测试,如果在设置环境变量之前你已经开了一个cmd,在原来的cmd内测试结果是不准确的。
- 测试方法:输入node,后输入“require(‘express’)”测试node模块的全局路径是否配置正确。 如报错则表明环境配置错误,再次核对与以上配置无误,则可尝试在用户环境变量下新建node_path,输入“E:\Program Files\nodejs\node_global\node_modules”,再重新开启新的cmd进行以上测试步骤。
- node环境配置完成
- 配置npm镜像.将源设置成国内淘宝镜像,速度会快很多.
npm config set registry https://registry.npm.taobao.org
npm info underscore (如果上面配置正确这个命令会有字符串response)
复制代码
或者通过命令行指定
npm --registry https://registry.npm.taobao.org info underscore
复制代码
也可以安装cnpm.不过有些包安装时使用cnpm可能会导致奇怪的问题,丢失文件。推荐还是用npm
说明:这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。 例如:我希望将全模块所在路径和缓存路径放在我node.js安装的文件夹中,则在我安装的文件夹【E:\Program Files\nodejs】下创建两个文件夹【node_global】及【node_cache】