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]
查看安装的模块
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
发布模块,撤销发布
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,以外建议本地安装,保证各自项目之间相互独立。
- 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工作原理
版本号详解
语义版本号分为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