提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
我们在实际的vue项目开发中,经常会遇见一些vue版本和node.js版本不太匹配的问题,这就导致我们无法去创建一个vue项目,因此我们需要一个方法来更好的管理node.js的版本,让我们集中精力来专注于代码的写作开发:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、nvm是什么?
nvm是一个node.js的版本控制工具为,了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。。
二、为什么我们要学会使用nvm版本控制工具
我们在日常开发过程中可能会使用不同的node.js的版本和不同的vue版本,这就会导致我们在运行的工程中产生node.js和vue版本不兼容的问题
例如我在这里使用vue5.0.8和node.js18.16.1运行一个vue项目
C:\Users\lenovo\Desktop\练习\router-demo1>npm run serve
> router-demo1@0.1.0 serve
> vue-cli-service serve
Browserslist: caniuse-lite is outdated. Please run:
npx browserslist@latest --update-db
Why you should do it regularly:
https://github.com/browserslist/browserslist#browsers-data-updating
INFO Starting development server...
10% building 0/1 modules 1 active ...enovo\Desktop\练习\router-demo1\node_modules\webpack\hot\dev-server.js ./src/main.j10% building 2/2 modules 0 activeError: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at module.exports (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\util\createHash.js:135:53)
at NormalModule._initBuildHash (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\NormalModule.js:417:16)
at handleParseError (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\NormalModule.js:471:10)
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\NormalModule.js:503:5
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\NormalModule.js:358:12
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at iterateNormalLoaders (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:221:10)
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:236:3
at runSyncOrAsync (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:130:11)
at iterateNormalLoaders (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:232:2)
at Array.<anonymous> (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
at Storage.finished (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9
10% building 2/3 modules 1 active ...ules\babel-loader\lib\index.js!C:\Users\lenovo\Desktop\练习\router-demo1\src\main.j10% building 2/5 modules 3 active ...\webpack-dev-server\client\index.js?http://192.168.1.30:8080&sockPath=/sockjs-nodeC:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:114
throw e;
^
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at module.exports (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\util\createHash.js:135:53)
at NormalModule._initBuildHash (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\NormalModule.js:417:16)
at handleParseError (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\NormalModule.js:471:10)
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\NormalModule.js:503:5
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\webpack\lib\NormalModule.js:358:12
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:186:6
at context.callback (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\loader-runner\lib\LoaderRunner.js:111:13)
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\cache-loader\dist\index.js:240:7
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\neo-async\async.js:2830:7
at done (C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\neo-async\async.js:2865:11)
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\neo-async\async.js:2818:7
at C:\Users\lenovo\Desktop\练习\router-demo1\node_modules\cache-loader\dist\index.js:229:9 {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Node.js v18.16.1
它这里就报错说node版本和当前vue项目不兼容,解决这个报错的方法有两个,
1.去卸载node下载一个和当前vue项目兼容的node版本重新安装
2.使用node.js的版本控制工具nvm
二、使用步骤
1.下载
下载链接
1.nvm官网:nvm文档手册 - nvm是一个nodejs版本管理工具 - nvm中文网 (uihtm.com)
2.下载链接:nvm 1.1.10-setup.zip
2.安装
1.下载完成后解压运行nvm-setup.exe
2.选择nvm安装路径
3.选择node.js的路径
4.确认安装即可
5.安装完成之后进行验证
nvm arch
:显示node是运行在32位还是64位。nvm install <version> [arch]
:安装node, version是特定版本也可以是最新稳定版本latest。可选参数arch指定安装32位还是64位版本,默认是系统位数。可以添加--insecure绕过远程服务器的SSL。nvm list [available]
:显示已安装的列表。可选参数available,显示可安装的所有版本。list可简化为ls。nvm on
:开启node.js版本管理。nvm off
:关闭node.js版本管理。nvm proxy [url]
:设置下载代理。不加可选参数url,显示当前代理。将url设置为none则移除代理。nvm node_mirror [url]
:设置node镜像。默认是https://nodejs.org/dist/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。nvm npm_mirror [url]
:设置npm镜像。https://github.com/npm/cli/archive/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。nvm uninstall <version>
:卸载指定版本node。nvm use [version] [arch]
:使用制定版本node。可指定32/64位。nvm root [path]
:设置存储不同版本node的目录。如果未设置,默认使用当前目录。nvm version
:显示nvm版本。version可简化为v。
6.安装node.js版本
nvm list available
//可以显示部分可用的node版本
nvm install 16.15.0
//下载合适的node版本
nvm list
//或nvm ls查看已安装版本
7.使用已安装的和本vue项目合适的node.js版本
8.再次运行项目
npm run serve
项目成功运行
总结
这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了nvm作业,nvm的一些常用命令,如何去使用nvm切换node版本。