nodejs安装+踩坑报错解决

  1. 下载Node.js安装包
    官网下载地址:http://nodejs.cn/download/,根据自己电脑选择32位还是64位,
    下载地址
    选择合适的版本下载
    X86是32位的,X64是64位的,我们一般是下载win版X64的msi文件的是点击可以直接启动安装程序的。
  2. 打开下载好的安装程序,点击下一步
  3. 选择接受许可协议,点击下一步
  4. 选择自己的安装路径(默认是c盘,建议改为自己的其他常安软件的盘),选择完成后,点击下一步
  5. 这里四项全部安装,点击下一步(无脑直接点下一步就行,默认这几项都是选好了的)
  6. 这里不用打勾✔,下一步
  7. 选择Install安装
  8. 选择finish完成
  9. win+R 打开运行窗口,在此窗口输入cmd命令

进入命令提示符窗口,分别输入以下命令,显示版本号,则安装成功

node -v:显示安装的nodejs版本

npm -v:显示安装的npm版本

  1. 修改全局模块路径和缓存路径(可选,大家自行选择是否修改)

当我们在执行npm install express -g命令时,g表示global全局。会默认下载到c盘,c盘一般作为系统盘,尽量把一些程序安装到其他盘,来减少c盘空间的占用

它的默认路径为:【C:\Users\用户名\AppData\Roaming\npm】。

这里将全局模块(文件夹名:node_global)和缓存(文件夹名:node_cache)放在了nodejs安装目录下,在你的nodejs安装目录下创建创建两个文件夹,名称分别为:node_global和node_cache,在node_global文件夹下再建一个node_modules文件夹,配置环境变量用

此时,还没有更改完成,需要手动指定到这两个文件夹中

win+R打开运行窗口,输入cmd,再输入以下两条指令

npm config set prefix "创建的node_global文件夹所在路径"

npm config set cache "创建的node_cache文件夹所在路径"

例如

bash 复制代码
C:\Users\dyl>npm config set prefix "E:\nodejs\node_global"

C:\Users\dyl>npm config set cache "E:\nodejs\node_cache"

修改完毕后,再配置环境变量

右键此电脑------>高级系统设置------>环境变量

在系统变量中,新建,变量名:NODE_PATH 变量值:node_global文件夹下的node_modules文件夹。如:E:\develop\nodejs\node_global\node_modules

修改用户变量中的Path变量,将默认的npm路径修改为新建的node_global路径

这时环境基本上配置好了。

在实际实际打开项目后,通过npm i命令下载一些依赖时,会报一些错误

1、提示没有权限,则把nodejs文件右键属性,给它权限就可以

2、node-sass总是报错,其中一个提示信息是Python版本的问题,使用npm安装node-sass时,或者安装需要python2的依赖时,会报出以下错误。

bash 复制代码
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (E:\codes\proviet\client-nuxt\node_modules\which\which.js:13:12)
gyp verb `which` failed     at F (E:\codes\proviet\client-nuxt\node_modules\which\which.js:68:19)
gyp verb `which` failed     at E (E:\codes\proviet\client-nuxt\node_modules\which\which.js:80:29)
gyp verb `which` failed     at E:\codes\proviet\client-nuxt\node_modules\which\which.js:89:16
gyp verb `which` failed     at E:\codes\proviet\client-nuxt\node_modules\isexe\index.js:42:5
gyp verb `which` failed     at E:\codes\proviet\client-nuxt\node_modules\isexe\windows.js:36:5
gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:183:21)
gyp verb `which` failed  python2 Error: not found: python2
gyp verb `which` failed     at getNotFoundError (E:\codes\proviet\client-nuxt\node_modules\which\which.js:13:12)
gyp verb `which` failed     at E:\codes\proviet\client-nuxt\node_modules\isexe\index.js:42:5
gyp verb `which` failed     at E:\codes\proviet\client-nuxt\node_modules\isexe\windows.js:36:5
gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:183:21) {
gyp verb `which` failed   code: 'ENOENT'
gyp verb `which` failed }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python C:\Program Files\python\python.EXE
gyp ERR! configure error
gyp ERR! stack Error: Command failed: C:\Program Files\python\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "<string>", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                       ^
gyp ERR! stack SyntaxError: invalid syntax
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:308:12)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at maybeClose (internal/child_process.js:1048:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
gyp ERR! System Windows_NT 10.0.19042
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "E:\\codes\\proviet\\client-nuxt\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd E:\codes\proviet\client-nuxt\node_modules\node-sass
gyp ERR! node -v v14.16.0

我的解决办法是自行安装Python2.7

安装完成后配置环境变量

bash 复制代码
npm config set python python2.7

再配置一下版本

bash 复制代码
npm config set msvs_version 2017

另一个解决方法在这里记录一下,不过我之前用这个解决不好用,可能分个人的环境吧。

解决方案二(推荐)

node-sass实在太坑了,之前遇到安装失败使用方法一完美解决。最近又一次遇到了,但是方法一又无效了。于是我又在网上找到另一个方法,就是用dart-sass来替换node-sass。

正常的替换也会出问题,还要改配置。使用以下方法便可以解决

yarn安装的:

yarn add node-sass@yarn:dart-sass -D

npm install node-sass@npm:dart-sass -D

3、使用淘宝镜像遇到的问题

会报错,因为淘宝的ssl证书过期了。

cmd下node -v 查看node是否已安装

安装淘宝镜像

bash 复制代码
npm install -g cnpm -registry=https://registry.npm.taobao.org

查看cnpm是否真安装成功 cnpm -v

如果遇到这个错误,就是ssl证书的问题

bash 复制代码
npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/@handsontable%2fvue failed, reason: certificate has expired
 
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\taylor\AppData\Roaming\npm-cache\_logs\2024-02-29T01_10_09_723Z-debug.log

解决方法

您可以尝试以下方法来解决这个问题:(一般只需要前两步就能解决问题)

1、清除npm缓存

bash 复制代码
npm cache clean --force

2、禁用SSL:虽然不推荐,但您可以暂时禁用SSL验证来解决这个问题。但请注意,这会降低安全性。您可以通过设置npm的 strict-ssl 选项为 false 来实现:

bash 复制代码
npm config set strict-ssl false

3、手动设置npm镜像源:有时,npm的默认镜像源可能会出现证书问题。您可以尝试切换到另一个镜像源,例如使用淘宝镜像。可以通过以下命令来设置:

bash 复制代码
npm config set registry https://registry.npm.taobao.org/
相关推荐
Random_index39 分钟前
#名词区别篇:npx pnpm npm yarn区别
前端·npm
B.-1 小时前
Remix 学习 - 路由模块(Route Module)
前端·javascript·学习·react·web
不修×蝙蝠1 小时前
Javascript应用(TodoList表格)
前端·javascript·css·html
加勒比海涛2 小时前
ElementUI 布局——行与列的灵活运用
前端·javascript·elementui
你不讲 wood2 小时前
postcss 插件实现移动端适配
开发语言·前端·javascript·css·vue.js·ui·postcss
前端小程2 小时前
使用vant UI实现时间段选择
前端·javascript·vue.js·ui
whyfail3 小时前
React 事件系统解析
前端·javascript·react.js
小tenten4 小时前
js延迟for内部循环方法
开发语言·前端·javascript
幻影浪子4 小时前
Web网站常用测试工具
前端·测试工具
暮志未晚Webgl4 小时前
94. UE5 GAS RPG 实现攻击击退效果
java·前端·ue5