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版本在这里插入图片描述
10. 修改全局模块路径和缓存路径(可选,大家自行选择是否修改)
当我们在执行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文件夹所在路径”
例如

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的依赖时,会报出以下错误。

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
安装完成后配置环境变量

npm config set python python2.7

再配置一下版本

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是否已安装
安装淘宝镜像

npm install -g cnpm -registry=https://registry.npm.taobao.org

查看cnpm是否真安装成功 cnpm -v在这里插入图片描述
如果遇到这个错误,就是ssl证书的问题

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缓存

npm cache clean --force

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

npm config set strict-ssl false

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

npm config set registry https://registry.npm.taobao.org/
Navicat是一款功能强大的数据库管理工具,可以于连接和管理各种类型的数据库。它支持多种数据库系统,包括MySQL、Oracle、SQL Server等。 要连接Node.js和MySQL数据库,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装Node.js和MySQL数据库,并且数据库已经正确配置和启动。 2. 在Node.js项目中,使用npm安装mysql模块,可以通过以下命令进行安装: ``` npm install mysql ``` 3. 在Node.js代码中,使用以下代码进行MySQL数据库的连接: ```javascript const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', // 数据库主机名 user: 'root', // 数据库用户名 password: 'password', // 数据库密码 database: 'database_name' // 数据库名称 }); connection.connect((err) => { if (err) { console.error('Error connecting to MySQL database: ' + err.stack); return; } console.log('Connected to MySQL database as id ' + connection.threadId); }); ``` 请将上述代码中的`host`、`user`、`password`和`database_name`替换为你自己的数据库信息。 4. 运行Node.js代码,如果一切正常,你应该能够成功连接到MySQL数据库。 关于你提到的连接报错"Client does not support authentication protocol requested by server",这是由于MySQL服务器使用了较新的身份验证插件,而Navicat连接工具使用的MySQL客户端版本较旧,不支持该身份验证插件导致的。解决这个问题的方法有两种: 1. 更新Navicat连接工具的版本,确保使用的是最新版本,以支持新的身份验证插件。 2. 在MySQL服务器上修改用户的身份验证方式,将其改为旧的身份验证插件。可以使用以下命令进行修改: ```sql ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ``` 将上述命令中的`username`和`password`替换为你自己的用户名和密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

且从容.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值