npm知识点

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 modulesnpm 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 startnpm stop

  • 重新启动模块
    npm restart

  • 测试模块
    npm test

  • 查看模块版本
    npm version

  • 查看模块的注册信息
    npm view

  • 用户登录
    npm adduser

    image.png

  • 发布模块,撤销发布
    npm publishnpm unpublish <package>@<version>

  • 在发布的包上设置访问级别
    npm access

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

  • 可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人
    npm cache clear

四.nvm其他命令

  • 安装最新稳定版 node
    nvm install stablenvm 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-remotenvm 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相关问题

  1. 安装 nvm
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
  2. 全局安装和本地安装
    全局安装是安装一个工具,他不是安装在一个文件夹下,而是安装在某个全局环境下,一般安装的路径为 /usr/local 下或者你 node 的安装目录。,全局安装在命令行中任何地方都可以直接调用。
    局部安装是将项目安装以后,在./node_modules下面(运行 npm 命令时所在的目录),然后在项目中通过require等方式引用,这样安装后只能在本项目中使用。
    通常情况下的引入模块是通过两种方式,一种是全局模块,通过NODE_PATH下去寻找;~另一种是通过./node_modules取寻找。
  • 当希望在项目中通过require来实现明显的依赖关系,必须使用本地安装_(全局安装的文件复制过来,或者相对,绝对的引入方式都可以,但过于麻烦。);
  • 在不同的项目中所需要的模块的版本是不同的,或者可能对某些模块进行重新命名,将导致一个项目重命名影响全局。
  • 本地安装的重要性:项目中需要的多个包之间相互依赖,若使用全局包,那么每次包的升级,更新就会影响多个项目,依赖关系会被破坏,所以使用本地安装有利于不同项目之间的独立性。
    综上:除了工具类webpack,babel,以外建议本地安装,保证各自项目之间相互独立。
    image.png
  1. 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目录中(开发过程需要使用的包)
  1. npm工作原理


    image.png
  2. 版本号详解

语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。

如果只是修复bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大变动,向下不兼容,需要更新X位。

  1. 使用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需手动指定路径。
  1. 使用 .nvmrc 文件配置项目所使用的 node 版本
image.png
  1. 卸载已安装到全局的 node/npm


    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • NPM NPM 是随同 Node 一起安装的包管理工具,能解决 Node 代码部署上的很多问题,常见的使用场景有以...
    heyi_let阅读 2,631评论 0 2
  • 在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的 Node...
    i5yue阅读 2,014评论 0 1
  • JavaScript 模块化编程 网站越来越复杂,js代码、js文件也越来越多,会遇到什么问题? 命名冲突; 文件...
    magic_pill阅读 1,504评论 0 1
  • 今天晚上我去韩畅姐姐家了。姐姐教我下象棋,我非常喜欢玩象棋,老妈妈叫我走的时候我还不愿意放手呢。他还有一个...
    周塬晰阅读 182评论 0 0
  • 今天的拆页来自第四章,如何讲好一个故事 拆页九 说明:没有引文标示的是书中作者所讲的故事,有引文标示的是作者对讲故...
    若尘Cherry阅读 245评论 0 0