1

我正在尝试发布一个依赖于未发布包的包,该包需要保持未发布状态。我以为我有一个解决方案:

在开发中,相对路径被硬编码在 package.json 中:

{
...
    "dependencies": {
        "@company/dependency": "file:../lib"
    },
    "bundledDependencies": {
        "@company/dependency"
    }
}

在部署管道中,依赖项是npm pack'd,然后将 tar 写入上述包:

"@company/dependency": "file:../lib/company-dependency-version.tgz"

然后发布该模块。直接安装时,在消费应用程序中似乎可以正常工作:npm install @company/published-module,但是npm i运行时,出现以下错误:

$ npm install
npm ERR! code ENOENT
npm ERR! syscall stat
npm ERR! path C:\...\node_modules\lib\company-dependency-version.tgz
npm ERR! errno -4058
npm ERR! enoent ENOENT: no such file or directory, stat 'C:\...\node_modules\lib\company-dependency-version.tgz'
npm ERR! enoent This is related to npm not being able to find a file.

似乎当在 npm install 中检查包时,它会沿着 node_modules 中模块所在位置的相对路径并查找 tar 文件,然后放弃npm install. 如果我跳过 tar,它仍会根据此处提供的相对路径查找模块。

我已经看到有关使用 bundledDependencies 与本地模块一起发布的人的问题,但我还没有看到这个问题出现。我在这里想念什么?

4

0 回答 0