npm总结(二)

本文参考:


上一篇文章 npm总结(一)中介绍了npm的一些基本使用和工作原理相关的内容,本文将在此基础上,介绍npm在实际应用中的一些命令使用和其他高级使用。

1. npm 常用命令详解

1.1 npm init 引导输出一个package.json文件

npm init 命令语法
  1. 语法介绍:调用脚本输出一个初始化的package.json文件
  2. 命令别名:create, innit
  3. 参数介绍:
  • --force:简写-f,跳过引导交互,快速生成默认的package.json文件
  • --yes:简写-y,同上
  • --scope:同npm init,与无参数时相同,交互生成package.json文件

1.2 npm install 安装模块

npm总结(一)中,已经对其做了详细的介绍和使用,那么下面就再总结一下该命令的使用语法:

npm install 命令语法
  1. 语法介绍:
  • npm install (with no args, in package dir):直接根据应用中的package.jsonpackage.lock.json文件来安装项目或模块需要的依赖
  • npm install [<@scope>/]<pkg>:安装已发布到npm仓库的包名,默认下载latest最新发布版
  • npm install [<@scope>/]<pkg>@<tag>:安装通过tag标记获取到的版本
  • npm install [<@scope>/]<pkg>@<version>:安装指定版本的包
  • npm install [<@scope>/]<pkg>@<version range>:安装通过semver规范匹配到的版本
  • npm install <folder>:安装本地包
  • npm install <tarball file>:安装gzip压缩文件
  • npm install <tarball url>:安装可下载到gzip压缩包的链接
  • npm install <git url>:安装通过git链接获取到的包
  1. 命令别名:i, add

  2. 参数介绍:

  • 无参数:同--save-prod
  • --global:简写-g,安装全局依赖
  • --save-prod:同-save,简写-S,将依赖信息加入到dependencies(生产环境的依赖)
  • --save-dev:简写-D,将依赖信息加入到devDependencies(开发环境的依赖)
  • --save-optional:简写-O,将依赖信息加入到optionalDependencies(可选阶段的依赖)
  • --save-exact:简写-E,精确安装依赖的版本,依赖信息将加入到dependencies
  • --no-save:只添加依赖,依赖信息不写入package.json

1.3 npm uninstall 卸载模块

npm uninstall 命令语法
  1. 语法介绍:卸载指定的依赖
  2. 命令别名:un, unlink, remove, rm, r
  3. 参数介绍:与 npm install类似

1.4 npm update 更新模块

npm update 命令语法
  1. 语法介绍:更新指定的依赖
  2. 命令别名:up, upgrade

1.5 npm outdated 检查模块是否过时

npm outdated 命令语法

语法介绍:检查依赖是否已经过时,并列出所有已经过时的包

1.6 npm ls 查看安装的模块

npm ls 命令语法
  1. 语法介绍:列出安装的所有依赖
  2. 命令别名:list, la, ll
  3. 参数介绍:
  • --global:简写-g,查看全局安装的依赖
  • --depth:直接列出依赖会列出包括其子依赖,输出太厄长了,使用--depth=0控制,如下图所示:
查看全局安装的所有依赖包

1.7 npm config 管理npm的配置路径

npm config 命令语法
  1. 语法介绍:所有npm配置参数可在官网查看(npm config
  • npm config set <key> <value>:或npm set <key> <value>,设置或修改某项npm配置。如通过npm config set proxy=***设置代理来解决公司内网无法安装npm依赖,通过npm config set registry="https://registry.npm.taobao.org"切换npm仓库源为淘宝镜像来解决无法访问npm源或下载依赖慢的问题
  • npm config get <key>:或npm get [<key>],查看某项npm配置
  • npm config delete <key>:删除某项npm配置
  • npm config list [--json]:查看所有npm配置
  • npm config edit:用文本编辑器修改npm配置
  1. 命令别名:c

1.8 npm cache 管理模块缓存

npm cache 命令语法

语法介绍:

  • npm cache add:给一个指定的依赖包添加缓存(该命令主要是npm内部使用)
  • npm cache clean:清除npm本地缓存
  • npm cache verify:验证缓存数据的有效性和完整性,清理垃圾数据

1.9 npm version 查看 npm 版本

npm version 命令

命令简写:npm -v

1.10 npm help 查看某条命令的详细帮助

npm help 命令语法

语法介绍:查看npm或某条命令的详细介绍,如npm help config,则会在本地生成一个关于config命令使用的HTML文件并在浏览器打开

1.11 npm root 查看依赖包的安装路径

查看npm全局依赖包路径:npm root -g

1.12 npm run 执行脚本命令

npm run命令可以自动新建一个shell去执行里面的脚本,关于npm脚本相关的内容,在 npm总结(一)中已有介绍,本文就列举一些常用的脚本命令:

  • npm run start:简写npm start,启动模块
  • npm run build:生成环境打包部署
  • npm run test:简写npm testnpm t,测试模块
  • npm run stop:简写npm stop,停止模块
  • npm run restart:简写npm restart,重启模块

1.13 npm 发布包相关命令

  • npm login:同npm adduser,登录npm社区账号,如下图所示:
npm login 命令使用
  • npm publish:发布npm
npm publish 命令语法

关于如何发布一个npm包,可参考文章:从0开始发布一个无依赖、高质量的npm包

2. npm 安装依赖过程中的错误解决

2.1 安装时间长导致安装失败

由于国内防火墙原因,有时候下载npm包特别慢,还经常下载失败,可以尝试以下方法来解决:

  1. 使用cnpm替代npm,通过npm安装:npm install -g cnpm,使用时将所有的npm命令换为cnpm即可

  2. 使用nrm快速切换npm仓库源,通过npm安装:npm install -g nrmnrm命令使用如下图所示:

nrm 命令介绍

推荐方式:先使用nrm test测试仓库源的延迟,然后使用nrm use命令选择延迟最少的使用,nrm的作用只是快速切换npm仓库源,所以使用时还是用npm命令

2.2 其他未知问题

有时候会碰到一些莫名其妙的问题导致安装依赖失败,可尝试升级node版本,升级npm版本,清除npm缓存:npm cache clean --force等方法来解决

3. Yarn

3.1 为什么使用 yarn

因为早期npm有较多的问题,如安装依赖的速度较慢,安装的依赖版本也会不一致而引发一系列的问题,而yarn正是为了弥补npm的缺陷而出现的。正如官网介绍的其优点:

  1. 极其快速Yarn会缓存它下载的每个包,所以无需重复下载。它还能并行化操作以最大化资源利用率,安装速度之快前所未有

  2. 特别安全Yarn会在每个安装包被执行前校验其完整性

  3. 超级可靠Yarn使用格式详尽而又简洁的lockfile文件 和确定性算法来安装依赖,能够保证在一个系统上的运行的安装过程也会以同样的方式运行在其他系统上

3.2 安装

windows上安装yarn最简单的方法就是使用npm来安装:npm install -g yarn,其他方法可参见官网:安装 | Yarn,下面主要介绍一下CentOS系统上的安装(安装 | Yarn):

curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

sudo yum install yarn

yarn --version

3.3 使用

yarn的使用和npm十分相似,大部分命令还是相同的,在官网从 npm 迁移中也列出了一些常用命令的比较,如下图所示:

npm 与 yarn 命令比较

其他的yarn命令的使用,在官网也有详细的介绍:CLI 介绍 | Yarn

3.4 小结

关于yarn的使用,本文不做详细介绍,因为官网的文档已经很清晰了,在理解了npm的基础上,快速阅读下yarn的文档即可使用yarn作为你的包管理工具。另外,关于package.json文件中的字段解释,在yarn官网(package.json | Yarn)有很详细的解释,很值得去阅读查阅。

那么使用了yarn就可以完全替代npm吗,答案是肯定的,虽然官网文档说两者一起使用也是完全可以的,但还是尽量避免这样做。至于选择哪个包管理工具,完全由个人喜好而定,npm也更新到6版本了,作为竞争者,自然也不会比yarn差到哪里去,所以选择一个自己喜欢的工具使用就好。

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

推荐阅读更多精彩内容