你不知道的 npm 技巧

阅读该文只需要五分钟
和多数人一样,我们开发者也喜欢给我们的同事和朋友秀一些小技巧,本文将会介绍一些和 Node Package Manager (NPM) 有关的键盘技巧。当然,技巧不仅仅用来秀或者“装逼”, 而是真的可以让我们的工作更加的有效和精准,让我们开始学习这些技巧吧!

#1 Package 初始化 (Package initialization)

你想要快速初始化一个新的 package 吗? 你是否厌倦了初始化package出现的无穷无尽的问题?那么你可以尝试npm init -y或者npm init -f. 这两个命令可以让你跳过很多“无关紧要”的问题让你直接开始编写你的优雅代码!

  • 我们先看看默认的npm init 有多么冗长

    image.png

  • 再试试 npm init -y 或者 npm init -f

    image.png

如我们所愿,自动生成了package.json的基本信息,如果需要扩充或者修改
我们可以 vi package.json

#2 打开 package 的 Homepage

你有发现并使用一些很酷炫的package吗? 你是否想迅速的访问该 package 的主页查看文档呢?使用 npm home 'your-package' 命令将帮你直接打开 package的主页,而不需要google package的主页,更不用那不专业的百度。

image.png
#3 打开 package 的 Github 仓库

类似于上一条命令,运行 npm repo "your-package" 可以帮你直接打开该 package 的官方 GitHub 仓库。 其实你也可以在Chrome输入 www.github.com 按下 tab 直接搜索关键字,而不用等待 Github页面渲染。

image.png
image.png
#4 列举已经安装的package

为什么我们需要花费我们的时间打开 package.json 文件去检查我们安装了哪些
package 依赖? 只需要简单的运行 npm ls --depth 0 就可以得到我们需要了解的信息。

我们尝试在前面生成的 package.json 中加一个 package 依赖并安装。

image.png

使用 npm ls --depth 0 很清晰的查看到我们已经安装的依赖

image.png
#5 查看所有的可执行脚本

想知道project有哪些可执行的脚本,阅读package.json当然可以,不过太原始和耗时,试试npm run

image.png

再给大家看看一个实际project的可执行脚本

image.png
#6 检查未定义在 package.json 中的 package

另一个常用的命令, 使用 npm prune 会比较你的 package.json文件中定义的 package/node_modules内容, 你将会得到一个列表显示哪些 package 未被定义在 package.json中,并且, npm prune将会删除这些你未在 package.json 中定义或者你在npm install时未使用--save标记的 package

听起来有点绕,总结就是可以帮你整理/node_modules中无关的 package, 减少你的依赖文件容量。

image.png
#7 修改(Bump) package的版本

一般我们的版本定义都为 major.minor.patch, 分别称为主版本或者大版本,次版本或者小版本,以及补丁。
我们项目或者package发布大的里程碑,会修改大版本号,大版本号可以不向前兼容,发布向前兼容的功能时可修改小版本,Bug修复功能不做改变时只需要修改补丁号即可。

举例说明:

package 1.0.0 提供了 list() 方法用于列出所有的集合数据。
package 1.0.1 修复了list()方法没有判断集合为None的Bug。
package 1.1.0 修复了list()在IE浏览器无法执行的问题,并兼容1.0.1版本。
package 2.0.0 添加了add(), rm() 方法,同时list()改名为toList, 无法向前兼容。

常规的做法,我们只需要手工修改package.jsonversion字段就大功告成,但是 npm version 为我们提供了酷炫的修改方式,如图所示,经过了三种方式的版本修订,package.json 的 version 字段最终为 2.0

image.png
#8 运行 test

我们在日常工作中,每一天都可能会使用 npm run test 运行多次test, 何不试试 npm t让手指减负

如果你觉得意犹未尽,还想多了解一些 npm 技巧,以下有一些笔者日常常用的命令。

安装 package
image.png
全局安装 package
image.png
安装依赖并保存在 dev dependency中
image.png
安装依赖并保存在 dependency中
image.png
结束语

假如这些命令能让你在你的同事或者朋友面前秀一把固然好,但本文的目的只是告诉大家npm有一些技巧可以帮助我们提高工作效率和乐趣, 如果有兴趣还有很多的技巧等待大家的挖掘和发现。

原文地址:https://dev.to/borrellidev/impress-your-colleagues-with-these-npm-tricks-3fcb

感谢原文作者 Piero Borrelli

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

推荐阅读更多精彩内容

  • NPM NPM 是随同 Node 一起安装的包管理工具,能解决 Node 代码部署上的很多问题,常见的使用场景有以...
    heyi_let阅读 2,582评论 0 2
  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 6,250评论 2 36
  • Node.js使得在服务器端使用JavaScript编写应用程序成为可能。它是基于V8Javascript运行时并...
    间阳幕宾阅读 1,582评论 0 5
  • 发现人上了年纪,跟年轻人确实代购越来越大,很多时候不知道说什么。可是在一起有时候不说话就很尴尬,为了缓解尴尬而去不...
    一介俗人十六阅读 278评论 0 1
  • 今天忽然有个人问我:“读书有用吗?” “当然有用了,不然那么多人读书干嘛~” “有什么用?” “……” 忽然语塞,...
    让dream照进现实阅读 190评论 1 3