下面是我的package.json文件的相关部分:
"devDependencies": {
"ajv": "^6.0.0",
"webpack": "^4.0.0",
"websocket": "^1.0.0",
"bignumber.js": "^7.0.0",
"decimal.js": "^10.0.0",
"truffle": "4.1.11",
"ganache-cli": "6.1.0",
"solidity-coverage": "0.5.4",
"ethereumjs-testrpc-sc": "6.1.2",
"web3": "1.0.0-beta.34"
}我把这个文件放在两个不同的存储库中,在同一台PC上。
当我在每个存储库中同时运行npm install时,我会在每个存储库中得到一个不同的package-lock.json文件。
这怎么可能是?
以下是一条可能的线索:
如果我提前删除了package-lock.json文件,那么npm install就会出现错误。
因此,我问题的答案可能与npm install依赖于已经存在的package-lock.json文件这一事实有关。
最初,我在这些存储库中有不同的package-lock.json文件,因为对应的package.json文件是不同的。
现在,我已经将其中一个存储库中的package.json文件更改为与另一个存储库相同,我期望相应的package-lock.json文件也会相同。
发布于 2018-06-11 14:25:44
来自https://docs.npmjs.com/files/package-locks
“从概念上讲,npm安装的”输入“是一个package.json,而它的”输出“是一个完全形成的node_modules树:表示您声明的依赖关系。在理想的世界中,npm将像一个纯函数一样工作:相同的package.json应该在任何时候产生完全相同的node_modules树。在某些情况下,这确实是正确的。但在其他许多情况下,npm无法做到这一点。有多种原因:
包锁文件将确保不会因为包版本稍有不同而中断,同时在同一台计算机上运行npm安装并不能保证获得所有依赖项的相同版本。
另一点可能说明包文件与包锁文件的区别。两个相同的package.json文件不能保证node_modules文件夹结构相同。但是两个相同的包锁文件将保证完全相同的node_modules文件结构。
https://stackoverflow.com/questions/50799914
复制相似问题