javascript - 覆盖 npm 包依赖

标签 javascript npm webpack package.json

我读到这个:How do I override nested NPM dependency versions?

不幸的是,它不能解决我的问题。

我正在尝试将包从使用特定依赖项更改为使用该依赖项的另一个版本。

它是否内置在包中,它应该使用哪个版本的依赖项,或者是否可以更改它?

具体来说,我正在尝试更改 css-loadercssnano@3.10.0 的默认依赖(最新)改为依赖 cssnano@4.0.0-rc.2 (下一个)。

从上面链接的第二个答案中,用户trickpatty 指出:

this will be removed anytime you run npm i instead of editing your package-lock.json and adding the child dependency to "dependencies" there, add the child dependency to your package.json "dependencies" section



其中cssnano@4.0.0-rc.2 package.json 的 devDependencies 对 css-loader 没有任何作用.它仍然使用 cssnano 的另一个(默认)版本。 .

最佳答案

有几种选择:

  • 如果你可以使用不同的包管理器,yarn 可以通过添加 package.json 来实现它。 :
  • "resolutions": {
        "package-a": "2.0.0"
    }
    
  • 如果您可以使用最新的 Node LTS 和 NPM 8:https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
  • 否则,您可以使用一些工具,如 https://github.com/mislavlukach/flatten-dependencies在安装后脚本上运行以解决不同嵌套依赖项版本的问题。您需要将该版本作为依赖项安装在您的项目中。

  • 编辑:找到另一种选择:https://www.npmjs.com/package/npm-force-resolutions

    关于javascript - 覆盖 npm 包依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50474126/

    相关文章:

    javascript - ES6/React 第二项绑定(bind)失败

    javascript - 无法访问单个 JSON 数据 [AngularJS]

    javascript - 限制 HighCharts 中的数据点数量

    npm - yarn 测试因 jasmine-ts yargs 依赖性而失败

    reactjs - 节点 : move files in create-react-app template to root post-install

    webpack - 使用 Karma 运行时,使用 Immutable.js 的 Mocha 测试失败

    javascript - 如何在<head>中有一个脚本在<body>末尾添加脚本

    node.js - 构建时出现 Nativescript 错误

    javascript - webpack - 转译 1 ts 文件而不捆绑它(2 个条目)

    javascript - 使用 TerserWebpackPlugin 将 sourceMap bundle.js.map 文件存储在特定位置