【问题标题】:Absolute paths for React app on Github CI with Firebase hosting带有 Firebase 托管的 Github CI 上 React 应用程序的绝对路径
【发布时间】:2020-12-13 04:30:06
【问题描述】:

switching to use absolute paths 之后,虽然我的本地构建仍然可以正常工作,但 Github CI 构建失败并出现以下错误:

./src/App.js
Cannot find module: 'components/Layout'. Make sure this package is installed.

如何让 Firebase/Github CI 也搜索 src 目录?

【问题讨论】:

  • 你能分享在CI和本地执行的构建命令吗?另外,假设是使用了 create-react-app,对吗?
  • 是的,使用了 create-react-app。构建命令: npm install && CI=false npm run build。与本地相同:npm run build
  • 你是否在根目录下创建了一个.env 文件,里面有NODE_PATH=src/
  • 我确实尝试过,尽管它已被弃用以支持 jsconfig.json。构建中的消息:Setting NODE_PATH to resolve modules absolutely has been deprecated in favor of setting baseUrl in jsconfig.json (or tsconfig.json if you are using TypeScript) and will be removed in a future major release of create-react-app.

标签: reactjs continuous-integration firebase-hosting github-ci


【解决方案1】:

使用以下配置创建 jsconfig.json 应该可以解决问题:

{
  "compilerOptions": {
    "baseUrl": "src"
  },
  "include": [
    "src"
  ]
}

我已尝试使用您提到的设置和 GitHub 操作(我希望这就是您所说的 GitHub CI)作业创建一个示例存储库,并正确创建了构建。

【讨论】:

  • 这正是我所拥有的(与问题中的链接相同)。我正在使用 firebase 来设置 CI(Github 操作)。这就是我关注的:create-react-app.dev/docs/deployment/#firebase
  • 我按照说明进行了设置,请查看github.com/ten-sis/so-absolute-paths/pull/1。我将在几周内删除回购。我不得不从 yarn 切换到 npm,因为 npm ci 命令需要 package-lock.json。如果您仍然遇到相同的错误,请尝试仔细检查您的存储库,以确保所有配置都与我的存储库中的内容匹配。
  • 你能把你的一个css导入改成absolute并试试吗?
  • 找出我的错误。我有一些文件在远程是小写但在本地是大写的。我的文件系统不区分大小写,因此本地构建没有失败,但 CI 在区分大小写的 ubuntu 上运行。授予赏金以感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2021-12-23
  • 2020-11-25
  • 2018-08-25
  • 1970-01-01
  • 2021-09-19
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
相关资源
最近更新 更多