记一次npm install 遇到的问题

2,830 阅读3分钟

1. npm install 大部分依赖都安装好了,最后报错:Error: Can't find Python executable "python", you can set the PYTHON env variable,如下图报错

image.png

错误原因:Node.js 在安装模块的时候报错,缺少python环境。

  • 解决方法 1
    • 安装Python 2.7版本及环境变量配置
    1. 进入Python官网,在“Downloads”下拉菜单中的右半部分直接点击即可下载,从兼容方面考虑建议下载Python 2.7版本。
    2. 点击所需要下载的系统版本 image.png 3.点击下载2.7版本

image.png 4. 根据自己的系统下载,我的是windows 64位的

image.png 5. 安装刚才已经下载下来的安装包,一路默认操作 6. 配置python环境变量

右击桌面上的“此电脑”—>“属性”—>“高级系统设置”—>右下角“环境变量”—>双击“系统变量”里的“Path”—>点击“新建”—>输入刚才的安装位置“C:\Python27;”,得到新建后的结果,然后一步步确定回去。

现在再重新 npm install 应该没问题了吧,但是还报错,如下图:

image.png

是因为执行至node-gyp rebuild时报错,百度发现一个解决方案,试试

  1. Microsoft官网下载安装Microsoft Visual C++ Build Tools 2015
  2. 执行 npm config set msvs_version 2015 --global

magic 的解决方式

重新删除node_modules,再 npm install, 发现还是会报错,# error MSB4019: 未找到导入的项目“C:\Microsoft.Cpp.Default.props” ,心态有点蹦。在网上找了很久没解决这个bug,之后我切换node版本(当前用的版本是 14.16.0)。我用的是nvm node包管理工具,切换到低版本 node 8.12.0、10.0.0、11.12.0、12.12.0 试了这些版本 npm install都不会报这个错,感觉是node版本太新的问题。然后又有一个问题出现了,11.12.0、12.12.0下载的依赖项目都跑不起来,好像中途卡住了一样,不动了,但是我换成8.12.0、10.0.0这两个版本启动正常,技术有限,不清楚为什么和node版本有关系。切记每次切换node版本都需要重新删除node_modules再npm install

BTW

给另一个类似的项目也是11.12.0、12.12.0下载的依赖项目都跑不起来,好像中途卡住了一样,不动了,但是我换成8.12.0、10.0.0这两个版本启动正常,但是用node的最新版本14.16.0,下载依赖也不报错,可以正常跑起来

  • 解决方法 2
    • 安装windows-build-tools,需要用管理员身份启动命令行
    npm install --global windows-build-tools
    

这条命令,其实就是会自动去联网下载 Visual C++ Build Tools 和安装 Python 2.7 环境,一键式命令。官网介绍

  • 安装node-gyp js npm install --global node-gyp

建议用第一种解决方法,安装windows-build-tools给你安装的python位置不一样,可能无法全局使用python,第二种方法我也试了,看安装的pythone全局都没办法使用,一个是需要配置一下环境变量,就没继续尝试

nvm的安装可以看我另一篇文章:nvm的安装

2. npm i 报错:Failed at the node-sass@4.14.1 postinstall script.

一般出现这个问题是因为 node 版本太高,可降低 node 版本或者设置 node-sass 源

  1. 设置 node-sass 源
    1. rm -rf node_modules/
    2. npm config set sass_binary_site=npm.taobao.org/mirrors/nod…
    3. npm i
  2. 或者降低node版本再去npm i安装依赖,目前时间node 14版本算是比较新的,不要用最新的 node16 版本