npm的依赖包管理方式
npm依赖包了解
疑惑的概念扫盲,npm依赖包主要分类:
dependencies
devDependencies
peerDependencies
optionalDependencies
bundledDependencies / bundleDependencies
package.json
package.json是node.js项目的重要文件,管理项目中使用的外部依赖包,是npm命令的入口文件,
package.json中版本x.y.z,符号^一般约束主版本,更新到最新的y,~一般约束到y,更新最新的z
一般展现形式:
{
"devDependencies": {
"fw2": "^0.3.2",
"grunt": "^1.0.1",
"webpack": "^3.6.0"
},
"dependencies": {
"gulp": "^3.9.1",
"hello-else": "^1.0.0"
},
"peerDependencies": { },
"optionalDependencies": { },
"bundledDependencies": []
}
dependencies
应用依赖,或者叫做业务依赖,这是我们最常用的依赖包管理对象!它用于指定应用依赖的外部包,这些依赖是应用发布后正常执行时所需要的,例如 vue,react等,安装命令:
npm install packageName --save
npm install packageName --S
devDependencies
开发环境依赖,仅次于dependencies的使用频率!它的对象定义和dependencies一样,只不过它里面的包只用于开发环境,不用于生产环境,这些包通常是单元测试或者打包工具等,例如 webpack,loader,sass,less等
npm install packageName --save-dev
npm install packageName --D
peerDependencies
同等依赖,或者叫同伴依赖,用于指定当前包(也就是你写的包)兼容的宿主版本。就是你安装了我,必须安装A和B。
参考element-ui的package.json vue安装在peerDependencies下
optionalDependencies
可选依赖,如果有一些依赖包即使安装失败,项目仍然能够运行或者希望npm继续运行,就可以使用optionalDependencies。另外optionalDependencies会覆盖dependencies中的同名依赖包,所以不要在两个地方都写。
bundledDependencies / bundleDependencies
打包依赖,bundledDependencies是一个包含依赖包名的数组对象,在发布时会将这个对象中的包打包到最终的发布包里。
warning " > vue-loader@15.8.3" has unmet peer dependency "css-loader@*".
很多这样的报错:
warning " > vue-loader@15.8.3" has unmet peer dependency "css-loader@*".
warning "@nuxtjs/eslint-module > eslint-loader@3.0.3" has unmet peer dependency "webpack@^4.0.0 || ^5.0.0".
warning "@nuxtjs/eslint-config > eslint-plugin-vue > vue-eslint-parser@5.0.0" has incorrect peer dependency "eslint@^5.0.0".
warning "@nuxtjs/eslint-module > eslint-loader@3.0.3" has unmet peer dependency "webpack@^4.0.0 || ^5.0.0".
peerDependencies指定包含依赖包不满足,这句话表明是根项目本身引用的vue-loader插件中要求根项目有安装css-loader,一般有的依赖安装了,但是没检测到,warning也不影响项目运行。
版权声明:
作者:wuhou123
链接:https://wuhou.fun/95.html
来源:前端网
文章版权归作者所有,未经允许请勿转载。

共有 0 条评论