为什么 package-lock.json 与 package.json 有不同的列出的依赖关系?
Why does package-lock.json have different listed dependencies to package.json?
我安装了 eslint 并注意到它初始化了一个 package-lock.json 文件并在我的 node_module 文件夹中安装了一堆我没有请求的模块。我不知道为什么。
更重要的是,我的 package.json 和 package-lock.json 列出的依赖项之间存在差异。我的理解是 package.json 列出了我安装的依赖项及其 semver 和 package-lock 确保我使用的确切版本也被安装模块的任何其他人使用。
所以我的问题是:
- 为什么会有差异广告他们不应该有镜像列出的依赖项?
- 哪个 .json 会根据要求安装依赖项,为什么?
- 为什么首先从 eslint 安装这些?
谢谢
package.json
中列出的依赖项是您使用 npm install
安装的依赖项。
当你 运行 npm install eslint
时,npm 将在 dependencies
中添加一行带有 eslint 和安装的版本。
"dependencies": {
"eslint": "^7.5.0"
}
package-lock.json
文件包含 所有 依赖项 - 您安装的依赖项和其他软件包所需的依赖项。例如,eslint
有 36 Dependencies(检查“依赖项”选项卡)。
要安装特定版本的 eslint,您应该 npm install eslint@7.5.0
。 package.json
文件现在将引用该特定版本:
"dependencies": {
"eslint": "7.5.0"
}
请注意 ^ 符号未显示。该符号表示与版本兼容并遵循semver。您可以检查其他选项 here.
我安装了 eslint 并注意到它初始化了一个 package-lock.json 文件并在我的 node_module 文件夹中安装了一堆我没有请求的模块。我不知道为什么。
更重要的是,我的 package.json 和 package-lock.json 列出的依赖项之间存在差异。我的理解是 package.json 列出了我安装的依赖项及其 semver 和 package-lock 确保我使用的确切版本也被安装模块的任何其他人使用。
所以我的问题是:
- 为什么会有差异广告他们不应该有镜像列出的依赖项?
- 哪个 .json 会根据要求安装依赖项,为什么?
- 为什么首先从 eslint 安装这些?
谢谢
package.json
中列出的依赖项是您使用 npm install
安装的依赖项。
当你 运行 npm install eslint
时,npm 将在 dependencies
中添加一行带有 eslint 和安装的版本。
"dependencies": {
"eslint": "^7.5.0"
}
package-lock.json
文件包含 所有 依赖项 - 您安装的依赖项和其他软件包所需的依赖项。例如,eslint
有 36 Dependencies(检查“依赖项”选项卡)。
要安装特定版本的 eslint,您应该 npm install eslint@7.5.0
。 package.json
文件现在将引用该特定版本:
"dependencies": {
"eslint": "7.5.0"
}
请注意 ^ 符号未显示。该符号表示与版本兼容并遵循semver。您可以检查其他选项 here.