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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

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