这是我参与更文挑战的第10天,活动详情查看: 更文挑战
1, NVM 是什么?
NVM 是 NODE.JS 的版本管理工具,通过它可以安装和切换不同版本的NODE, 从 GitHub 或者其他网站下载一个项目,我们首先查看的是当前这个项目所需要的 NODE 版本,NDOE.JS 官方版本更新的非常快,而且每一次更新改动都比较大,正是因为这个需求,才需要频繁的切换 NODE 版本
2, NVM 下载
1, Window版本
https://github.com/coreybutler/nvm-windows/releases
2, MAC 版本
https://github.com/nvm-sh/nvm#install--update-script
3, NVM, NODE, NPM 之间的区别
node 版本和npm包 兼容性越来越差,不同的node版本对应这不同的npm包版本。在使用node版本的过程中,版本之间的切换越来越重要。nvm是一个很好的node版本管理工具
1,node: node开发环境,代码库
2,npm: 安装node的时候,一起安装的,node的包管理器
3,nvm: node的版本管理工具
4, 输入nvm 验证nvm是否安装成功
1,输入nvm
输出:Node Version Manager
代表安装成功
2,查看nvm版本
nvm --verison
5, 常用的nvm命令
(0) nvm --version 查看nvm版本 (常用)
(1) nvm install stable 安装最新稳定版 node
(2) nvm install <version> ## 安装指定版本 For Example:
nvm install v10.12.0
(3) nvm ls-remote 查看远程所有的版本
如果为 N/A,切换到外网,改变一下指向
export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist
(4) nvm ls 查看已经下载安装的node版本
(5) nvm current 查看当前使用的node 版本
(6) nvm use v10.13.0 切换到10.13.0node版本
(7) nvm alias default 10.12.0 设置默认node版本
6, NPM包实战开发
- 1, 熟悉对UM账号和密码进行Base64编码,
echo -n 'zhengliming511:2020@success' | openssl base64
编码结果: emhlbmdsaW1pbmc1MTE6MjAyMEBzdWNjZXNz
- 创建 .npmrc文件,并填写
init.author.name = zhengliming511
init.author.email = zhengliming511@pingan.com.cn
init.author.url = url
email = zhengliming511@pingan.com.cn
always-auth = true
_auth = emhlbmdsaW1pbmc1MTE6MjAyMEBzdWNjZXNz
- 在package.json中新增
"publishConfig": {
"registry": "http://maven.paic.com.cn/repository/npm"
}
- 最后一步: 执行 npm publish
7, NPM配置
1,NPM查询当前镜像
- npm config get registry
2,NPM设置镜像
1,淘宝镜像
- npm config set registry http://registry.npm.taobao.org/
2, 官方镜像
- npm config set registry http://registry.npmjs.org/
3, 平安镜像
- npm config set fegistry http://maven.paic.com.cn/repository/npm
3,Yarn 的安装和版本
- 下载node.js 使用npm安装
npm install -g yarn
yarn --version
4,Yarn 查询当前镜像
- yarn config get registry
5,Yarn 设置镜像
1, 淘宝镜像
- yarn config set registry http://registry.npm.taobao.org/
2, 官方镜像
- yarn config set registry http://registry.yarnpkg.com
3, 安平镜像
- yarn config set registry http://maven.paic.com.cn/repository/npm
8, YARN 和 NPM 的区别
(1) yarn: 是同步执行所有任务,提高了性能, 而且如果你上一次安装过软件包,第二个会从缓存中获取, (2) npm: 是按照队列执行每一个package, 每一次都是从网络上下载,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装
"6.0.3", // 表示安装指定的6.0.3版本
"~6.0.3", // 表示安装6.0.X中最新的版本
"^6.0.3" // 表示安装6.X.X中最新的版本
9, YARN 和 NPM 命令对比
NPM Yarn
npm install == yarn
npm install vue -g == yarn global add vue
npm install vue --save == yarn add vue
npm install vue --save-dev == yarn add vue --dev
npm uninstall vue --save(-dev) == yarn remove vue
npm unpdate vue --save == yarn upgrade vue
10, NPM 和 NPX 的区别
* npm 是 node 软件包的管理器
* npx 是 node 软件包的执行工具
官方文档,从npm@5.2.0 版本开始,npx就和npm捆绑在了一起,可以认为npx是npm 的高级版本,npx 具有更强大的功能,
** npx是一个可执行的二进制文件,原理很简单,运行npx的时候,默认会到 node_modules/.bin 路径和环境变量$PATH里面,检查命令是否存在
For Example:
项目中想运行一个脚本命令有两种方式:
1, package.json中配置script脚本
{
"scripts": {
"mocha": xxxx
}
}
2, 项目根目录路径下面:
node-modules/.bin/mocha --version
现在有了npx可以直接执行:
npx mocka --version
*** 执行一次性命令
npx 当执行一个包的时候,会自动检查本地是否存在,如果没有会为你从 npm 上下载,临时安装这个包,并且执行它。当做完这些事情后,已安装的包不会出现在你的全局安装中,所以不用担心长期使用所带来的全局污染。
常用的命令: npx create-react-app my-app
安装一个临时create-react-app并调用,而不用污染全局安装
总结:执行npx命令
1.首先会检查本地项目路径中是否存在要执行的包
2.如果存在,执行;
3.如果不存在,意味着尚未安装该软件包,npx将临时安装其最新版本,然后执行它;
11, 展望未来
- 因为 有了yarn的出现,npm5.0版本之后,npm也做了改进,引入了package-lock.json,速度和性能上也大大提升,个人感觉还没有超过yarn。
- 如何选择,个人建议:大多数项目依然可以采取用npm,兼容性好,成熟,稳定,种类多,有趣,它和node一起提供,管理包安全放心,
- 新的项目可以使用yarn,yarn是一个更安全的选择,随着时代的发展,我发现其实无关选择,都是为了工作需求,完成日常工作,选择哪一种看个人爱好。