JavaScript is required
Blog About Online 🎬

说一下安装依赖包时所遇到常见问题的快速处理方式

2024/09/05
6 mins read
See this issue
# 八哥
# 陈年老博客
# npm package
Back

在新项目或者设备未曾配置过node/node-sass安装源及代理源时,直接执行npm install可能会出现一堆乱七八糟的报错,那这篇文章希望能带来对应的解决方案:

1. python 未安装导致:
<!-- 提示xxx could not find "python". checking python launcher xxx...
或xxx could not find "python". guessing location xxx...
或xxx Can't find Python executable "python", you can set the PYTHON env variable. xxx...等等
只要提示说无法找到python相关的时候,那就是当前缺少python的环境变量,那很简单:-->

先搞一手Python(看同时看终端输出是否缺少python环境,缺少的是多少版本,然后对症下药):
https://registry.npmmirror.com/binary.html?path=python/2.7.9/

安装完成之后,删除package-lock.json文件,并执行:
npm cache clean --force

OK~,别急~,往下看 ↓ ↓ ↓

可能这一顿操作之后,你想尝试npm install一波,果然!又会出现其他乱七八糟的鬼,那…

2. npm ERR! xxxx node_modules\node-sass… xxx sh*ft !!

遇到这种情况,别慌:

1、先单独设置一波npm registry的国内镜像代理源:
<!-- 此方式为永久切换镜像代理源,后续若要需要切换回官方代理源,可以看下面Tips.内容。通常来说都无需切换回去,除非机子上挂有V*N代理可以直接使用官方源down下依赖库,或采用下面的临时源使用方式①② -->
npm config set registry https://registry.npmmirror.com

<!-- ①、临时使用方式 项目根目录式install -->
npm --registry https://registry.npmmirror.com install
<!-- ②、临时使用方式 单独针对某个库install -->
npm --registry https://registry.npmmirror.com install [email protected]

2、再设置一波node-sass的国内镜像代理源:
# npm config set sass_binary_site=https://registry.npmmirror.com/-/binary/node-sass
npm config set sass_binary_site https://registry.npmmirror.com/-/binary/node-sass

3、删除package-lock.json文件,并执行:
npm cache clean --force

OK~

到这里可能又有人顶不住了,我要:npm i !!! 别急~,你可能执行了,又出现:

事故1:“xxx\node_modules\node-sass\build\binding.sln”(默认目标)(1)-> ||  “xxx\node_modules\node-sass\build\binding.vcxproj.metaproj”(默认目标)(2)-> ||  “xxx\node_modules\node-sass\build\binding.vcxproj”(默认目标)(4)

事故2:文件无效或损坏: 无法在 0x353D17 处读取 [D:\admin\node_modules\node-sass\build\binding.vcxproj]

事故3:error MSB4019:未找到导入的项目“x:\Microsoft.Cpp.Default.props”。请确认<Import>声明中的路径正确,且磁盘上存在该文件。

事故1 事故1 事故1 事故2 事故3

等等以上事故的,看下这个图: image.png 靠! 一顿操作发现居然是被占用搞了个不完整错误的node-gyp依赖包,导致这一堆的什么鬼…
废话少说,直冲C盘用户根目录下找到隐藏文件夹.node-gyp,选中,shift + del,再见~

至此,基本该出现该排查的都在以上步骤出现了,那你可以:npm install 了~

(其实这里面并非玄学的东西或者说运气,而是自己的环境问题导致,又或者侥幸你以为的执行了一半的,就Ctrl+C给人家取消掉了,那这时候就是后面尿性事件的开端…就是一步错,全盘崩的情况,只有一步步重新来,并且重新开始前,把之前拉的东西记得一定清理完整,然后再以步骤走一遍)

Tips. 再扩展一波相关的命令
 <!-- npm 抽风或者有些包没法正常down下来,或者需要代理靠*墙来down的,那就需要认真看下这一条的内容咯 -->

// 临时使用 例:
npm --registry https://registry.npmmirror.com install node-sass

// 永久使用
npm config set registry https://registry.npmmirror.com

// 使用CNPM(实质npm走的还是本身registry,而cnpm走的则为代理)
npm install -g cnpm --registry=https://registry.npmmirror.com

// 重置回官方源
npm config set registry https://registry.npmjs.org