gpt4 book ai didi

dependencies - 使用 Yarn 2 使依赖项的依赖项可用

转载 作者:行者123 更新时间:2023-12-04 13:35:31 26 4
gpt4 key购买 nike

我正在开发一个框架,我希望框架包的依赖项对使用它的应用程序可用。依赖项不是由消费者直接使用,而是由框架提供的文件使用。

使用 npm,它可以工作,但是使用 Yarn 2 我得到这样的错误

Error: Your application tried to access @snowpack/plugin-dotenv, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.

显然,我可以将依赖项添加到消费应用程序的 package.json 中,但这需要在依赖项发生变化时手动编辑 package.json。这与具有无模糊升级路径的框架的想法背道而驰。此外,依赖项适用于框架提供的文件。它们不应受到下游代码的干扰。

是否可以在下游共享依赖项?

注意:我正在使用工作区。我不知道这是否与问题有关。

最佳答案

您可以使用 createRequire实现这一目标。
例如,如果您的应用程序依赖于 micromatch@4.0.2并且您希望在应用程序代码中要求其子依赖项 picomatch不用申报,可以代为micromatch通过下面的代码:

const {createRequire} = require(`module`);
const requireDependency = createRequire(require.resolve(`micromatch`));
requireDependency(`picomatch`);
这种方法适用于所有包管理器和安装策略,包括 Yarn v2 pnppnpmnpm也。

关于dependencies - 使用 Yarn 2 使依赖项的依赖项可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62298396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com