NodeJS 无法在“file:...”依赖项上找到模块“foo”或其对应的类型声明

kcrjzv8t  于 2023-06-05  发布在  Node.js
关注(0)|答案(2)|浏览(181)

获取本地文件依赖项的错误:
我有以下结构:

/foo
  package.json
/bar
  package.json

我在/bar的package.json中引用了/foo包作为依赖项,如下所示:

"dependencies": {
  "foo": "file:../foo",
}

它在本地工作得很好,但是当在github操作上执行时,typescript会抱怨

Cannot find module 'foo' or its corresponding type declarations.
0tdrvxhp

0tdrvxhp1#

Node不检查package.json中的依赖项,而是在node_modules中查找依赖项。
"file:../foo"使 package manager 将您的包版本放置/链接到node_modules
在尝试将其导入node之前,请确保您使用了npm install(或其他任何pm)

cmssoen2

cmssoen22#

发生问题的原因是GitHub Actions在远程环境中运行,因此基于文件的依赖项(“file:../foo”)将无法正确解决,因为/foo目录在该环境中不可用。以下是解决此问题的方法:
将本地包转换为Git仓库首先,您可以将/foo包转换为单独的git仓库,然后在/bar package.json中将其作为git仓库依赖项引用。In /foo:

git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin <your-git-repo-url>
git push -u origin main

然后,在/bar的package.json:

"dependencies": {
  "foo": "git+https://github.com/username/foo.git#main"
}

将“username”和“foo.git”替换为您实际的GitHub用户名和新仓库的名称。“#main”是npm将从其中拉取的分支。
Good luck!!!

相关问题