Npm 理解';需要';和';依赖关系';在package-lock.json中
为了理解Npm 理解';需要';和';依赖关系';在package-lock.json中,npm,angular-cli,package.json,package-lock.json,Npm,Angular Cli,Package.json,Package Lock.json,为了理解package lock.json中requires和dependency之间的区别,我正在检查@angular/clidependency对象,如下所示。 在@angular/cli中,在requires和dependencies字段下列出了uuid软件包的版本8.3.0 "@angular/cli": { "version": "10.1.7", "resolved": "https:/
package lock.json
中requires和dependency之间的区别,我正在检查@angular/cli
dependency对象,如下所示。
在@angular/cli
中,在requires
和dependencies
字段下列出了uuid
软件包的版本8.3.0
"@angular/cli": {
"version": "10.1.7",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.1.7.tgz",
"integrity": "sha512-0tbeHnPIzSV/z+KlZT7N2J1yMnwQi4xIxvbsANrLjoAxNssse84i9BDdMZYsPoV8wbzcDhFOtt5KmfTO0GIeYQ==",
"dev": true,
"requires": {
"@angular-devkit/architect": "0.1001.7",
"@angular-devkit/core": "10.1.7",
"@angular-devkit/schematics": "10.1.7",
"@schematics/angular": "10.1.7",
"@schematics/update": "0.1001.7",
"@yarnpkg/lockfile": "1.1.0",
"ansi-colors": "4.1.1",
"debug": "4.1.1",
"ini": "1.3.5",
"inquirer": "7.3.3",
"npm-package-arg": "8.0.1",
"npm-pick-manifest": "6.1.0",
"open": "7.2.0",
"pacote": "9.5.12",
"read-package-tree": "5.3.1",
"rimraf": "3.0.2",
"semver": "7.3.2",
"symbol-observable": "1.2.0",
"universal-analytics": "0.4.23",
"uuid": "8.3.0"
},
"dependencies": {
"ansi-colors": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
"dev": true
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"uuid": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz",
"integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==",
"dev": true
}
}
我已经浏览了基础,如果版本不同,将uuid
列在requires
和dependencies
字段下是有意义的
但是,在这种情况下,uuid
在requires
和dependencies
字段下具有相同的版本8.3.0
。那么,为什么需要在这两个地方都列出它呢?根据,一个依赖项
条目不仅是为一个版本不同于其他地方使用的依赖项填充的。如果依赖项不在其他任何地方使用,它也将被填充。至少,这是我的解释。如果我说的没错,在项目中运行npmls-uuid
应该只显示一个uuid
条目
它需要在这两个地方列出,因为依赖项
比需要的信息要多得多
,而npm
需要这些信息。不过,“为什么”的更广泛的答案是“为什么不呢?”package lock.json
文件供npm
内部使用。格式在npm版本6和npm版本7之间更改。它可能会再次改变。他们可能会做任何对npm命令行工具最有效的事情。这可能涉及重复信息