goo*_*ion 5 node.js npm package.json npm-install package-lock.json
这是我的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"
}
Run Code Online (Sandbox Code Playgroud)
我在同一台 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文件也将变得相同。
来自https://docs.npmjs.com/files/package-locks
从概念上讲,npm-install 的“输入”是一个 package.json,而其“输出”是一个完整的 node_modules 树:您声明的依赖项的表示。在理想的世界中,npm 将像纯函数一样工作:相同的 package.json 应该随时生成完全相同的 node_modules 树。在某些情况下,确实如此。但在许多其他情况下,npm 无法做到这一点。这有多种原因:
包锁定文件将确保不会因包版本略有不同而出现任何问题,在同一台计算机上同时运行 npm install 并不能保证获取所有依赖项的相同版本。
另一点可以澄清包文件与包锁定文件的不同之处。两个相同的 package.json 文件不保证相同的 node_modules 文件夹结构。但是两个相同的包锁文件将保证完全相同的node_modules 文件结构。
| 归档时间: |
|
| 查看次数: |
2646 次 |
| 最近记录: |