npm包的分类与命名惯例
在 npm 生态系统中,包的命名和分类通常遵循一定的规律和惯例。以下是一些常见的包类型及其命名方式:
1. 核心功能包
这些包提供了应用程序的核心功能,通常直接安装在项目中。例如:
express:Web 框架lodash:实用工具库axios:HTTP 客户端
安装方式:
npm install express
npm install lodash
npm install axios
2. 类型定义包
这些包为 JavaScript 库提供 TypeScript 类型定义,通常以 @types/ 前缀命名。例如:
@types/lodash:为lodash提供类型定义@types/express:为express提供类型定义
安装方式:
npm install @types/lodash
npm install @types/express
3. 开发依赖包
这些包仅在开发过程中使用,通常安装为开发依赖(devDependencies)。例如:
typescript:TypeScript 编译器eslint:JavaScript 代码检查工具jest:JavaScript 测试框架
安装方式:
npm install typescript --save-dev
npm install eslint --save-dev
npm install jest --save-dev
--save-dev表示仅作为开发依赖安装,打包为时不会包含相关依赖。
4. 插件和扩展包
这些包通常是为某个框架或工具提供插件或扩展功能。例如:
eslint-plugin-react:为 ESLint 提供 React 相关规则babel-plugin-transform-runtime:Babel 插件,用于优化代码
安装方式:
npm install eslint-plugin-react --save-dev
npm install babel-plugin-transform-runtime --save-dev
5. CLI 工具包
这些包提供命令行工具,通常全局安装。例如:
create-react-app:创建 React 应用的 CLI 工具typescript:TypeScript 编译器
安装方式:
npm install -g create-react-app
npm install -g typescript
6. 命名惯例
- 作用域包:以
@scope/前缀命名,表示包属于某个组织或个人。例如:@angular/core。 - 插件包:通常包含
plugin或-plugin,表示是某个工具或框架的插件。例如:eslint-plugin-react。 - 类型定义包:以
@types/前缀命名,表示是 TypeScript 类型定义包。例如:@types/node。
示例
假设你正在开发一个使用 TypeScript 和 React 的项目,你可能会安装以下包:
npm install react react-dom
npm install @types/react @types/react-dom --save-dev
npm install typescript --save-dev
npm install eslint eslint-plugin-react --save-dev
npm install jest @types/jest ts-jest --save-dev

浙公网安备 33010602011771号