npm 常用命令,值得拥有

248 阅读4分钟

npm 命令相关

之前的项目都是基础模板搞好了让我上,最近由于项目原因得自己开了,管理包的一些命令长时间不用有点忘记,所以整体记录一下,下次忘了就直接看这个记录了。

npm包运行

这里主要记一下当前项目的包,所以全局的略过。

npm 的包分为全局和当前项目,全局放在 C:\Users\你的用户名\AppData\Roaming\npm\node_modules,当前项目放在 node_modules 文件夹里。

我们要使用包,比如下载了gulp想查看其版本,你可以傻傻的用 "./node_modules/.bin/lodash -v",也可以创建一个package.json文件,通过这个文件去操作包。

$ pwd  //进入当前文件
$ npm init -y // -y表示全部选择yes
$ ls //列出当前文件夹文件
$ cat package.json // cat打出文件具体内容

以上命令可以创建、查看 package.json文件。

{
  "name": "02-npm",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

当我们安装了gulp包以后, 即:npm i gulp,则会文件会出现以下内容。

 "dependencies": {
    "gulp": "^4.0.2"
  },

此处会出现包的名字及版本号。

我们需要用到一个包时,可以在 scripts 这个键名下面创建 dev 命令:

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "gulp -v" 
  }

其作用在于,当我们直接跑 npm run dev 时,node就会执行 gulp - v 显示 gulp 的版本。

其实也可以写成 ./node_modules/.bin/gulp -v ,但没必要,因为 package.json 这个文件会自动定位到当前目录的包。

此外,我们可以依据 package.json 这个文件去重新安装包。你可以试试将node_modules文件夹删除重新执行 npm i,有趣的事情发生了,新的node_modules文件夹里的包与之前的包是一样的。

npm 常用命令

这里以 下载 gulp 包为例。

下载(增)

普通安装
npm i gulp //简化写法
npm install gulp 
npm install gulp --save
npm install gulp --global

在这里,使用命令 --save 或者说不写命令 --save 命令 ,node都会把信息记录到 dependencies 中。--global则指下载到全局。

指定dependencies、devDependencies安装
npm install gulp --save-dev // 注意!是-dev
npm i gulp -D // --save-dev简化写法

如果使用命令 --save-dev ,node 会把信息记录到 devDependencies 中。

这里我们需要说一下dependencies和devDependencies:

  • dependencies 中记录的是项目在运行时需要的文件,比如上线或测试的环境。
  • devDependencies 中记录的是项目在开发过程中需要使用的一些文件,也就是常说的开发环境中会用到。在项目最终运行时是不需要的。
  • 如果你的项目一个版本做完了,测试人员需要测试,那么他只需要你的 dependencies 中记录的包即可。

现在问题来了,假设测试人员要安装你的包,直接拿到你的据package.json 文件后去执行npm i,这时候,dependencies和devDependencies中均都会被安装。如果devDependencies中的东西很多,那势必会造成包很大。

请问怎么只安装dependencies而不安装devDependencies里的包呢?

npm i --production

执行以上命令即可,--production,这个单词说明了一切。

指定版本安装
npm i gulp

安装 gulp最新版本。

npm i gulp@4

安装 gulp 版本4中最新的版本。

npm i gulp@4.0

安装 gulp 的4.0中最新版本。

npm i gulp@4.0.2

安装 gulp 的4.0.2版本。

注意,假如当前包的版本为2.2.2,当你指定下载版本2.2.1以后,该包会直接变成2.2.1。这个过程一般不需要将原来的包删除。(也有例外,组长,包里有坏人呐!)

查看包(查)

npm list // 简写为: ls

可以查看 node_modules 文件夹中的包, 包的依赖也会显示。

npm list | grep gulp

指定查看 gulp 包目录,不会将多余的依赖显示出来。

npm view gulp versions

查看 gulp 的所有历史版本。

更新包

npm i gulp@4.0.2

@命令可以直接覆盖掉当前的包,去安装指定版本。

npm update

此命令需要提前了解一些规则:

"dependencies": {
    "gulp": "^4.0.1"
  }

我们可以看到"gulp": "^4.0.1"中,有 ^ 号。 其表示锁定主版本。 此时运行 npm update ,则gulp的更新规则为:gulp版本4中最新的版本。

除此以外,~ 表示锁定主版本及次版本:"gulp": "~4.0.1",什么都不写则锁定具体版本。 *, 表示直接更新最新版本。

当项目越来越大的时候,将这个规则和 npm update 配套使用,可以省很多功夫。

删除

npm uninstall gulp

删除gulp包。

npm cache clean --force

清除npm缓存。 某些包安装过程中报错安装失败,但是文件还残留着,这会导致你后面重新安装的时候可能报错,那么就可以使用这个命令可以清除掉缓存文件。