npm
是 Node Package Manager(Node 包管理器)的缩写,它是 JavaScript 编程语言的包管理器,也是 Node.js 运行环境的默认包管理器。npm
用于管理 Node.js 应用程序中的依赖关系:安装、更新和管理 Node.js 库(或包)。
npm 的主要功能:
- 包安装:可以安装、更新和删除 Node.js 项目中的包。
- 包管理:维护项目中所有依赖的版本,确保它们能够协同工作。
- 包搜索:通过
npmjs.com
网站或npm search
命令搜索包。 - 包发布:允许开发者发布自己的包供他人使用。
- 包版本管理:遵循语义化版本控制规则,管理不同版本的包。
- 生命周期脚本:在包的生命周期中执行自定义脚本,如
start
、test
、stop
等。 - 包依赖锁定:通过
package-lock.json
或npm-shrinkwrap.json
锁定依赖版本。
npm 的基本命令:
npm init
:初始化一个新的 Node.js 项目,创建package.json
文件。npm install
或npm i
:安装项目依赖到node_modules
目录,并更新package.json
。npm install <package>
:安装指定的包。npm install <package> --save
或npm i <package> -S
:安装包并将其添加为依赖到package.json
。npm install <package> --save-dev
或npm i <package> -D
:安装包并将其添加为开发依赖。npm uninstall <package>
或npm rm <package>
:卸载包并从package.json
中移除。npm update
:更新所有或指定的包。npm outdated
:列出所有过时的包。npm cache clean
:清理 npm 缓存。npm publish
:发布包到 npm registry。npm version
:管理包的版本。
npm 的配置:
npm
可以通过命令行参数、环境变量或配置文件(如 .npmrc
)进行配置。配置选项包括但不限于:
prefix
:设置 npm 的全局安装目录。registry
:设置或指定默认的包注册表。loglevel
:设置日志级别。
npm 的包版本规则:
npm
使用语义化版本控制(Semantic Versioning,SemVer),版本号格式为 MAJOR.MINOR.PATCH
。
- MAJOR:当你做了不兼容的 API 修改,
- MINOR:当你添加了向下兼容的功能时,
- PATCH:当你做了向下兼容的问题修正时。
npm scripts:
npm
允许在 package.json
文件中定义脚本,这些脚本可以通过 npm run
命令执行。例如:
"scripts": {
"start": "node index.js",
"test": "mocha **/*.test.js"
}
npm 的生态系统:
- npm registry:
npm
的公共包注册表,任何人都可以搜索和下载包。 - private npm registry:私有的 npm 注册表,用于管理私有包。
- workspaces:允许管理多个包或项目。
使用 npm 的最佳实践:
- 保持
package.json
和package-lock.json
在版本控制系统中。 - 使用
^
或~
前缀来指定依赖的版本范围。 - 定期运行
npm update
来更新依赖。 - 使用
npm audit
来检查项目中的安全漏洞。
npm
是 Node.js 生态系统中不可或缺的一部分,它极大地简化了 Node.js 应用程序的依赖管理。