首页 > 解决方案 > 为什么“npm install”会删除不相关的包?

问题描述

当我运行npm install --save bootstrap-vue它时,它会删除我已经安装的 fontawesome 包。

当我运行npm install --save @fortawesome/fontawesome-free它时,它会删除 bootstrap-vue 包。

安装这两个软件包的唯一方法是在命令行上同时指定它们,如下所示:npm install --save bootstrap-vue @fortawesome/fontawesome-free

我认为我的package-lock.json文件中可能存在一些损坏,所以我尝试对其进行核对并重新安装所有内容,但行为仍然存在。

是什么赋予了?我以前从未遇到过这种情况,安装一个包会导致另一个包被删除。

更新:以下是我的 package.json 文件,没有安装任何一个包。以此为起点(并且没有 package-lock.json),我可以安装任何一个包,但是当我安装另一个包时,它会删除第一个包。我使用什么顺序并不重要。

{
"private": true,
"scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "npm run development -- --watch",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
    "axios": "^0.19",
    "bootstrap": "^4.0.0",
    "cross-env": "^7.0",
    "jquery": "^3.2",
    "laravel-mix": "^5.0.1",
    "lodash": "^4.17.13",
    "popper.js": "^1.12",
    "resolve-url-loader": "^2.3.1",
    "sass": "^1.20.1",
    "sass-loader": "^8.0.0",
    "vue": "^2.5.17",
    "vue-template-compiler": "^2.6.10"
},
"dependencies": []
}

编辑:请注意,三个月后这种情况仍然存在。这是最奇怪的事情。

标签: node.jsnpmnode-modulesnpm-install

解决方案


问题在于您的package.json

"dependencies": []

使用此条目,dependencies安装时不会更新。改为:

"dependencies": {}

推荐阅读