【发布时间】:2022-04-27 13:04:15
【问题描述】:
Nodejs 版本 - 14.17.3
npm 版本 - 6.14.13
我对软件包版本的差异感到困惑 -
我在package.json 中声明的那个不同于
npm install 命令正在安装的那个。
package.json -
{
"name": "training-project-metadata",
"version": "1.0.0",
"description": "",
"main": "module1.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"tildify": "^2.0.0"
},
"bundleDependencies": [
"tildify"
]
}
如果我运行 npm install 命令,这是正在创建的 package-lock.json -
{
"name": "training-project-metadata",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"tildify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/tildify/-/tildify-3.0.0.tgz",
"integrity": "sha512-9ZLMl75qnTLr7oSEmWJbKemFS/fP4TMBiF6PFwGwLpgobebU1ehXoGbadJ+7jT8fjaz2G82JgN9G4taz+o1j1w==",
"dev": true
}
}
}
我什至尝试从 package.json 中删除 ^ 符号以使其成为准确的版本 - 但这没有帮助。
我发现如果我显式运行此命令 - 只有安装了正确的 2.0.0 版本。
npm install tildify@2.0.0 --save-dev
谁能帮我理解为什么它不适用于npm install 命令?
谢谢!
【问题讨论】:
-
什么是 bundleDependencies?也许它告诉 npm 忽略 devDependencies 中的指定版本?
-
yarn1 也有同样的结果?
-
它只是告诉哪些包将在 tar 文件中 - 如果我打算使用 npm pack 命令
-
您是否尝试删除 package-lock.json 文件并再次运行 npm install?
-
是的,我确实删除了 package-lock.json 和 node-modules 文件夹并运行了 npm install 命令。
标签: node.js npm npm-install