使同事羡慕不已的8个npm命令

这篇文章会为你揭示一些有用的 npm 技巧,由于篇幅原因不可能涵盖所有,所以我选择了工程师日常相关且有用的作为本篇文章的关注点。

基本简写

为了大家保持一致,特别是新人,首先我们来快速浏览一些基础的简写。

Installing a package:

通常:

npm install pkg

简写:

npm i pkg

Installing a package globally:

通常:

npm i --global pkg

简写:

npm i -g pkg

Installing a package and save it as a dependency:

通常:

npm i --save pkg

简写:

npm i -S pkg

Installing a package and save it as a devDependency:

通常:

npm i --save-dev pkg

简写:

npm i -D pkg

更多的简写请看官网:https://docs.npmjs.com/misc/config#shorthands-and-other-cli-niceties

接下来让我们开启有趣之旅:

1.Initializing a new package

我们都知道 npm init ,是当我们初始化一个package的第一件事。

npm init

但是,这些问题很烦人,所以为什么不避免它呢?

使用

npm init -y

npm init -f

来解救!

3.gif

2.Running tests

另一个我们都会用的命令是

test```,我们中的大多数人会每天使用,甚至一天几次。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
![4.gif](http://upload-images.jianshu.io/upload_images/76372-0192f44f0c683478.gif?imageMogr2/auto-orient/strip)
幸运的是,使用 ```npm t```,可以做相同的事!
![5.gif](http://upload-images.jianshu.io/upload_images/76372-f1ab73c98f70840d.gif?imageMogr2/auto-orient/strip)
3.List available scripts
--
当我们接手一个新项目时,会考虑如何开始手头的工作。我们经常会自问:我们如何运行项目?有哪些脚本命令可以使用?
一种方法是找到package.json文件然后查看里面的 ```scripts``` 部分。
![6.gif](http://upload-images.jianshu.io/upload_images/76372-7501b8f4fdb3074e.gif?imageMogr2/auto-orient/strip)
当然我们可以做的更优雅一些,可以简单的运行 ```npm run``` 来列出所有可使用的脚本命令。
![7.gif](http://upload-images.jianshu.io/upload_images/76372-4f4b37708b6dfbbd.gif?imageMogr2/auto-orient/strip)
另外还可以安装 ```ntl```(```npm i -g ntl```),然后在项目文件夹下运行 ```ntl```,同时还支持运行脚本。
![8.gif](http://upload-images.jianshu.io/upload_images/76372-c6a12e2e0318c72a.gif?imageMogr2/auto-orient/strip)
4.List installed packages
--
就像上面一样,有时候我们还会自问项目中都有哪些依赖。
我们同样可以打开package.json文件然后查看,但是我们已经知道我们可以做的更好。
使用 ```npm ls --depth 0

9.gif

列出全局安装的包,我们可以使用同样的

的标识, ```npm ls -g --depth 0```。
1
2
3
4
5
6
7
8
9
10
11
![11.gif](http://upload-images.jianshu.io/upload_images/76372-41bd72b97a934e2b.gif?imageMogr2/auto-orient/strip)
5.Running locally-installed executables
--
在项目中我们安装了一个附带可执行文件的包,但是只有当我们通过 npm script 运行是才可用,你或许会惊奇为何?或知道如何避免它?
首先,我们来理解一下为何--当我们在控制台运行命令时,实际上是在系统环境变量的 ```PATH``` 下列出的所有paths中,寻找同名的可执行文件。这就是为何在任何地方都可执行的原因。本地安装的包是把它们的可执行命令注册在本地的,所以它们没有被列在 ```PATH``` 中,同时也不会被找到。
你或许会问:为何在通过 npm script 就可执行?好问题!当以这种方式运行时,npm 做了一些小技巧就是在我们的 ```PATH``` 中增加了额外的目录

/node_modules/.bin。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
你可通过运行 ```npm run env | grep "$PATH" ```来查看,你同样可运行 ```npm run env```来查看所有环境变量,npm 增加了一些有趣的东西在里面。
我们在项目目录下运行 ```./node_modules/.bin/mocha``` 来实际看看效果
![10.gif](http://upload-images.jianshu.io/upload_images/76372-0dc46e037edcfd18.gif?imageMogr2/auto-orient/strip)
是不是很简单?无论何时你想运行本地安装的可执行文件,只要简单的敲入 ```./node_modules/.bin/<command>```。
6.Find your package on the internet
--
你或许会在package.json中发现仓库的地址,同时想问此安装包有什么功能?
简单的运行 ```npm repo``` 就会在浏览器中打开该仓库地址。
同样运行 ```npm home``` 命令就会打开 ```homepage```的入口。
如果你想在 npmjs.com 中打开包的页面,有一个贴心的命令: ```npm docs

7.Run scripts before and after other scripts

你可能对类似 pretest 的脚本属性,它可以帮你在运行 test 脚本之前定义一些代码。
真正会使你惊奇的是,你同样可以在自定义脚本中使用!

12.gif

当你把 npm 作为你的构建工具或者有许多脚本要执行时,这种功能就会很有用。

8.Bumping package’s version

你有一个包,同时使用 semver 做为你的版本记录标准,在你发布新包之前需要填写新的版本号。
其中一种方法就是你打开 package.json 文件然后改变里面的值,但是我们可以不需要这样做。
另一个简单的方法是运行 npm version 并附带上 majorminor 或者 path

13.gif

我希望你从本博文中学到一些东西,并能运用到你的日常工作中。

分享到: