你应该知道的几类npm依赖包管理详解
1. devDependencies
devDependencies 是一个特殊的依赖包,他们仅在开发时依赖使用。也就是说,这些依赖包只在构建/编译/测试/调试时使用。
在安装的时候,使用 npm install --only=dev
安装,或使用 npm install <package> --save-dev
的形式保存到 package.json 文件中。
例如,在开发一个 React 应用时,我们可能会用到 babel
作为转换器进行 JSX 语法编译,这时候需要在 devDependencies 中添加 babel 软件包。
// package.json
{
"devDependencies": {
"@babel/core": "^7.4.3",
"@babel/preset-env": "^7.4.3",
"@babel/preset-react": "^7.0.0",
}
}
2. dependencies
dependencies 是一个项目中最常用的依赖包类型。他们是开发和运行时都需要用到的软件包。
在安装时,使用 npm install <package>
或 npm install <package> --save
命令安装。
例如,如果我们要在一个 react 应用中使用 axios
作为 HTTP 请求库,我们需要在 dependencies 中添加 axios。
// package.json
{
"dependencies": {
"axios": "^0.19.0",
"react": "^16.8.6",
"react-dom": "^16.8.6",
}
}
3. peerDependencies
peerDependencies 是一种特殊的依赖包,主要用来要求使用者安装一个针对于特定模块的特定版本软件包。
这种依赖关系适用于包发布者对于包使用者的版本要求不确定的场景。
例如,一个发布了 react 组件库的包作者并不知道,使用者的 react 和 react-dom 的版本,那么就可以用 peerDependencies 来要求使用者安装这两个软件包,并且限制了版本。这样可以避免组件无法在特定版本下正常使用的问题。
// package.json
{
"peerDependencies": {
"react": "^16.0.0",
"react-dom": "^16.0.0",
}
}
4. optionalDependencies
optionalDependencies 是可选安装依赖。他们只在被依赖的包存在时才会被使用。如果不存在,依赖包仍可正常引入。
例如一个包中,有一个子组件依赖于 rxjs
,但这个库并不是必须的,可以使用 optionalDependencies 来指定这个依赖是可选的。
// package.json
{
"optionalDependencies": {
"rxjs": "^6.5.2",
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:你应该知道的几类npm依赖包管理详解 - Python技术站