javascript - 为什么 package-lock.json 列出的依赖项与 package.json 不同?

标签 javascript json package eslint package-lock.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文件包含所有依赖项-您安装的依赖项和其他软件包所需的依赖项。例如,eslint36 Dependencies (检查依赖项选项卡)。
    要安装特定版本的 eslint,您应该执行 npm install eslint@7.5.0 . package.json文件现在将引用该特定版本:
    "dependencies": {
        "eslint": "7.5.0"
    }
    
    请注意 ^ 符号未显示。该符号表示与版本兼容并遵循 semver。您可以查看其他选项here .

    关于javascript - 为什么 package-lock.json 列出的依赖项与 package.json 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63153226/

    相关文章:

    javascript - 如何更新数组中特定对象的属性

    javascript - LocalStorage 无法在 iPhone 上运行 - 无法在私密浏览中使用

    javascript - 更改相邻选择元素的类名

    javascript - 如何过滤深层嵌套数据? - JavaScript JSON

    ios - SwiftyJSON解析JSON查询

    python - 导入同名的 Python 包

    javascript - Angular 6 : not set properties of class after calling HTTP-request

    javascript - 解析 JSON 时出现 jQuery 错误

    dependencies - 用于拆分包的不同前/后 inst/rm 维护者脚本和单元文件?

    python-3.x - 为 CLI 脚本构建 python 包