node 切换版本
一.npm切换node版本
使用npm 安装一个模块 modules 到全局
npm install -g modules使用 n 加版本号就可以安装其他版本,比如:
modules 6.11.3-
再使用 n ,通过上下键,就可以选择不同的版本啦
(注意,是从低版本升到高版本时多版本共存;如果是已经安装了高版本,再安装低版本时,高版本就没有了)
二.nvm切换node版本
- 下载某版本node
nvm install v8.11.3 - 切换到某版本Node
nvm use v8.11.3
其他命令
三.npm其他命令
安装包
npm install modules,npm install
npm install命令以后会根据package.json 去下载相关依赖包.卸载模块
npm uninstall更新模块
npm update modules-
检查过时模块
npm outdated [modules]
image.png 查看安装的模块
npm ls在项目中引导创建一个package.json 文件
npm init查看某条命令的详细帮助
npm help查看包的安装路径
npm root管理npm的配置路径
npm config启动模块,停止模块
npm start,npm stop重新启动模块
npm restart测试模块
npm test查看模块版本
npm version查看模块的注册信息
npm view-
用户登录
npm adduser
image.png 发布模块,撤销发布
npm publish,npm unpublish <package>@<version>在发布的包上设置访问级别
npm access配置cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人
npm cache clear
四.nvm其他命令
- 安装最新稳定版 node
nvm install stable,nvm use node - 给版本起别名
nvm alias awesome-version 4.2.2 - 取消别名
nvm unalias awesome-version - nvm切换node版本的时候,将全局npm包一键切换(重下载原版本Npm包)
nvm install v5.0.0 --reinstall-packages-from=4.2 - 想安装最新的 4.2 系列的最新的一个版本
nvm install 4.2 - 列出远程服务器上所有的可用版本,Windows 的话,
nvm ls-remote,nvm ls available - 列出已安装
nvm ls - 直接运行特定版本的 Node
nvm run 4.2.2 --version - 在当前终端的子进程中运行特定版本的 Node
nvm exec 4.2.2 node --version
确认某个版本Node的路径
nvm which 4.2.2
npm ,nvm相关问题
- 安装 nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash - 全局安装和本地安装
全局安装是安装一个工具,他不是安装在一个文件夹下,而是安装在某个全局环境下,一般安装的路径为 /usr/local 下或者你 node 的安装目录。,全局安装在命令行中任何地方都可以直接调用。
局部安装是将项目安装以后,在./node_modules下面(运行 npm 命令时所在的目录),然后在项目中通过require等方式引用,这样安装后只能在本项目中使用。
通常情况下的引入模块是通过两种方式,一种是全局模块,通过NODE_PATH下去寻找;~另一种是通过./node_modules取寻找。
- 当希望在项目中通过require来实现明显的依赖关系,必须使用本地安装_(全局安装的文件复制过来,或者相对,绝对的引入方式都可以,但过于麻烦。);
- 在不同的项目中所需要的模块的版本是不同的,或者可能对某些模块进行重新命名,将导致一个项目重命名影响全局。
- 本地安装的重要性:项目中需要的多个包之间相互依赖,若使用全局包,那么每次包的升级,更新就会影响多个项目,依赖关系会被破坏,所以使用本地安装有利于不同项目之间的独立性。
综上:除了工具类webpack,babel,以外建议本地安装,保证各自项目之间相互独立。
image.png
- npm install X、npm install X -save、npm install X -save-dev的区别?
- npm install X:会把X包安装到node_modules目录中,不会修改package.json,之后运行npm install命令时,不会自动安装X
- npm install X -save:会把X包安装至node_modules目录中,会在package.json的dependencies属性中添加X,之后运行npm install命令会自动安装X到node_modules中(运行时需要引用的包)
- npm install X -save-dev:会把X包安装到node_modules目录中,会在package.json的devDependencies属性下添加X之后运行npm install命令时,会自动安装X到node_modules目录中(开发过程需要使用的包)
-
npm工作原理
image.png 版本号详解
语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
如果只是修复bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大变动,向下不兼容,需要更新X位。
- 使用nvm和n的区别
n是一个需要全局安装的npm 包。
在使用n管理node版本之前,先需要一个node环境,然后使用n来安装不同版本的node.安装时,n会先将指定版本的node存储下来,然后将其赋值到我们熟知的路径/usr/local/bin,非用户目录需要在命令前加sudo.
nvm是一个独立软件包,不是npm package,所以需要单独安装nvm.然后使用nvm来安装不同版本的node.
安装时,nvm将不同的node版本存储在~/.nvm/<version>/下,然后修改$PATH,将指定版本的路径加入,这样调用node命令即是使用指定版本的node.
对比:nvm比n复杂,但它是一个独立软件包,nvm不依赖node环境,是node依赖nvm;而n依赖于node.
n对全局模块无作用,有可能在切换了node版本后发生全局模块执行出错的问题;nvm切换版本后,由于nvm全局模块存在于各自版本的沙箱中,需重新安装,不同版本不存在任何冲突。
注:- nvm不支持Windows;
- node路径:/usr/local/bin;nvm需手动指定路径。
- 使用 .nvmrc 文件配置项目所使用的 node 版本

-
卸载已安装到全局的 node/npm
image.png




