gpt4 book ai didi

javascript - 用自己的实现替换 npm 包

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:54 34 4
gpt4 key购买 nike

在我的 package.json 中,我有一个依赖项 "protractor": "2.1.0"。该包又依赖于 "jasminewd2": "0.0.5"

jasminewd2 包有一些我想修改的行为。我下载了它的源代码并进行了我需要的更改。 Yarn's documentation讲述了使用本地资源包的可能性:

yarn add file:/path/to/local/folder installs a package that is on your local file system. This is useful to test out other packages of yours that haven’t been published to the registry.

当我执行那个命令时

  1. "jasminewd2": "file:\\CustomNodeModules\\jasminewd2" 被添加到我的 package.json
  2. 这是我的 yarn.lock 文件:

    "file:\\CustomNodeModules\\jasminewd2", jasminewd2@0.0.5:
    name jasminewd2
    version "0.0.5"
    resolved "https://registry.yarnpkg.com/jasminewd2
    /-/jasminewd2-0.0.5.tgz#528609a124dfc688c1e3f434a638e047066cd63e"

因此,node_modules/jasminewd2 包含来自 npm 存储库的原始版本。我怎样才能让 yarn 安装我的版本?

最佳答案

我认为您的解决方案不起作用,因为 jasminewd2是传递依赖(protractor 的)而不是直接依赖。因此,当您直接添加它时,传递性不受影响。

您可以使用 3 种方法解决这个问题:

  1. 如果您的更改是临时的(用于开发或故障排除),您应该 yarn linkdocumentation 中所述.
  2. 否则,你可以同时 fork protractorjasminewd2包并在相应的 package.json 中引用它们秒。 package.json s syntax for that"protractor": "<githubUser>/<githubRepo>" .
  3. 使用 yarnresolutions field : "resolutions": { "jasminewd2": "desired-version-or-url-or-path" } .我知道 PNPM 也有类似的功能(但我自己没有用过)。

根据我的经验,选项 2 和 3 以包管理器缓存的形式存在警告:您的 git 存储库的 HEAD仅当该依赖项首次安装 时才会被拉取。之后,它每次都会被缓存并重新安装——即使你的仓库的HEAD已经改变了。

解决方法是引用一个提交散列作为依赖的一部分,如下所示:"dependency": "user/repo.git#aef38fb2adc73304ae1ea87b0d607ad7fadc4d0g" .

关于javascript - 用自己的实现替换 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40398833/

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