快速上手 npm

20 年 10 月 19 日 星期一
991 字
5 分钟

npm 是 Node.js 的标准包管理工具。 Node.js 项目开发往往会使用 npm 来管理依赖,当然你也可以使用其他包管理器,例如 Yarnpnpm 等。

准备工作

安装和检查版本

安装 Node.js 时会自动安装 npm。如果你还未安装 Node.js,请先安装 Node.js。
npm 的更新频率往往会比 Node.js 高,你可以通过以下命令来检查 npm 版本:

sh
npm -v
# 我当前的版本是 10.2.5

升级 npm

可以通过下面的命令将 npm 更新到最新版本:

sh
npm install npm@latest -g

初始化项目

一个 package.json 文件会列出项目所依赖的软件包,并且可以通过语义化的规则来控制软件包的版本,这十分有利于项目的合作和共享。一个 package.json 文件必须拥有 "name""version"

可以通过下面的命令在当前目录生成 package.json 文件:

sh
npm init

该命令还可以使用 --yes 标志,根据当前目录信息生成默认值。

sh
npm init --yes
# 效果同上
npm init -y

你可以在 package.json 文件中指定一些任务,通过以下方式运行:

sh
npm run <任务名>

本地安装

关于依赖项

依赖项有以下两类:

  1. dependencies: 项目在生产环境下需要的软件包。
  2. devDependencies: 仅在开发和测试环境下需要的软件包。

安装本地包

该操作会将包安装到当前文件夹中的 node_modules 文件中

你可以通过下面的方式将依赖项添加到 package.jsondependencies

sh
npm install <> --save
# 效果同上
npm install <>
# 安装包的对应版本 x.x.x
npm install <包名@版本>

同样的,你也可以将依赖项添加到 devDependencies 中:

sh
npm install <> --save-dev
# 效果同上
npm install <> -D

安装 package.json 文件中的所有依赖,可以通过下面的方式:

sh
# 安装项目中的包
npm install
# 在生产环境下
npm install --production

更新本地包

定期更新依赖可以保证你的项目处于最新状态,当然,有可能会遇到一堆麻烦
你可以在 package.json 文件所在目录执行下面的命令:

sh
npm update

在此之前可以你可以通过下面的方式检查安装的软件包的版本:

sh
npm outdated

在你执行完npm update,该命令应没有任何输出。

卸载本地包

卸载的操作与安装基本类似,只需要将 install 变成 uninstall
只是从 node_modules 目录中删除包:

sh
npm uninstall <>

同时从 package.json 文件中删除依赖:

sh
npm uninstall --save <>

作为 devDependency 安装的需要通过 --save-dev 参数才可以卸载:

sh
npm uninstall --save-dev <>

删除当前项目文件所有依赖

sh
# 可用性存疑
npm uninstall *

卸载完成后,你可以查看 node_modules 目录下对于包的目录已经不见了

全局安装

安装全局包

例如对于一个命令行工具,你可能想将其安装到全局,这样你可以在任何目录下使用这个包:

sh
npm install -g <>
# 效果同上
npm install --global <>

你可以通过下面的命令查看全局安装的路径:

sh
npm root -g

更新和卸载全局包

找出需要更新的软件包

sh
npm outdated -g --depth=0

更新全局软件包

sh
npm update -g <>

更新所有全局软件包

sh
npm update -g

卸载全局包

sh
npm uninstall -g <>

理解包和模块

Node.js 和 npm 有着对包(packages)和模块的定义(modules),但是很容易混淆它们。看看官网的解释:

A package is a file or directory that is described by a package.json. A module is any file or directory that can be loaded by Node.js' require().

一个通过 package.json 描述的项目就是包,任何可以被 Node.js 的 require() 加载的就是模块。
因此大部分 npm 软件包都是模块,但这不是必须的。

参考资料

文章标题:快速上手 npm

文章作者:柃夏chapu

文章链接:https://www.lxchapu.com/posts/quick-start-npm[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。