- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
它的经典案例适用于我的机器。我正在构建两个 react native 应用程序。应用程序 A 和应用程序 B。这两个应用程序都是使用 expo 引导的。 。
当我运行命令在本地构建任一应用程序时,它们都会构建。然而,当我尝试在 gitlab-ci 中构建应用程序时,只有应用程序 B 无法构建并显示以下消息:
[23:07:28] warn Package babel-preset-expo has been ignored because it contains invalid configuration. Reason: Cannot find module 'babel-preset-expo/package.json'
[23:07:28] Require stack:
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
[23:07:28] - /builds/XXX/application-b/node_modules/react-native/local-cli/cli.js
[23:07:28]
[23:07:29] Starting Metro Bundler on port 19001.
[23:07:29] debug Watch mode is not supported in this environment
[23:07:29] debug Checking for a newer version of React Native
[23:07:29] debug Current version: 0.61.4
[23:07:29] debug No release cache found
[23:07:29] debug No release cache found
[23:07:29] debug Checking for newer releases on GitHub
[23:07:29] debug No release cache found
[23:07:30] Publishing to channel 'default'...
[23:07:30] debug Saving "6d6386b01438c6ef0acd213d304b5839" to cache
[23:07:30] debug No release cache found
[23:07:30] debug No release cache found
[23:07:30] debug Latest release: 0.60.0
[23:07:32] Building iOS bundle
[23:07:43] node_modules/expo/AppEntry.js: Cannot find module 'babel-preset-expo' from '/builds/XXX/application-b'
[23:07:43] › Closing Expo server
[23:07:43] node_modules/expo/AppEntry.js: Cannot find module 'babel-preset-expo' from '/builds/XXX/application-b'
[23:07:43] Failed building JavaScript bundle.
[23:07:43] ::ffff:127.0.0.1 - - [06/Apr/2020:23:07:43 +0000] "GET /node_modules/expo/AppEntry.bundle?dev=false&minify=true&hot=false&platform=ios HTTP/1.1" 500 - "-" "axios/0.19.0"
[23:07:43] › Stopping Metro bundler
[23:07:43] Packager URL http://127.0.0.1:19001/node_modules/expo/AppEntry.bundle?dev=false&minify=true&hot=false&platform=ios returned unexpected code 500. Please open your project in the Expo app and see if there are any errors. Also scroll up and make sure there were no errors or warnings when opening your project.
我尝试让 CI 显式安装模块 babel-preset-expo,但这并不能解决问题。我的 babel.config.js 对于这两个应用程序来说是相同的,如下所示:
module.exports = function(api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
};
};
我的两个 package.json 中都有以下几行:
"devDependencies": {
"@babel/core": "^7.0.0",
"babel-preset-expo": "^8.0.0"
},
错误 AppEntry.js
中引用的两个应用程序中的文件也相同。
这是我的 gitlab-ci.yml:
image: node/alpine
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- ~/.npm
stages:
- deploy
- tag
before_script:
- echo $CI_BUILD_REF
- echo $CI_PROJECT_DIR
- apk add --no-cache bash build-base gcc git python3 curl
- PATCH=`git log --pretty=oneline | wc -l | sed -e 's/^[[:space:]]*//'`
- VERSION=`cat VERSION`
- VERSION=${VERSION%?}
- TAG="${VERSION}${PATCH}"
- echo "Build version = ${TAG}"
expo-build:
stage: deploy
artifacts:
paths:
- ipas/
script:
- sed -i "s/0.0.0/${TAG}/g" app.json
- npm ci --production --cache .npm --prefer-offline
- npx expo login -u $EXPO_USERNAME -p $EXPO_PASSWORD
- EXPO_DEBUG=true npx expo build:ios --non-interactive # This works because it has been already built once through the cli, credentials cannot be pass into env
- mkdir -p ipas
- curl "$(npx expo url:ipa --non-interactive)" -o ipas/bravo-teller-$TAG.ipa
only:
- master
任何关于这可能是什么的反馈或建议将不胜感激。谢谢
最佳答案
实际上,babel-preset-expo
不是 devDependencies
,您应该将其添加到 dependency
中,而且您可能应该在 babel 配置上使用以下代码来使用延迟加载:
[
'babel-preset-expo',
{
lazyImports: true,
},
]
关于ios - Expo 构建在 CI 中失败,但在本地构建(babel-preset-expo 已被忽略,因为它包含无效配置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61070536/
我们都知道ci" ci' ci( ci[ ... 做。在日常编辑中非常方便。我发现了一些奇怪的东西,并查看了帮助,没有找出原因。 说,我有一个文件: foo "target" foo 'target'
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我的本地 gitlab 安装中有许多存储库。我正在从 Jenkins 迁移到 gitlab 以进行 CI,并且毫无问题地切换了我的第一个 repo。当我添加 .gitlab-ci.yml 时,第二个
我在一个github项目中有几个文件夹,每个文件夹都有一个不同的.travis.yml文件。 设置travis-ci的正确方法是什么,以便我可以指定要构建的文件夹/子项目? 我可以添加before_s
Gitlab 文档说明了以下关于 GIT_STRATEGY: none 的内容: none also re-uses the project workspace, but skips all Git
我想用以下条件配置我的 CI: 当我创建合并请求时 而这个目标分支是 develop 我的工作运行。 我没有找到这个特定工作的文档。 谢谢 最佳答案 在 Gitlab CI 文档中几个小时后,我找到了
我有一个带有子目录 ( test ) 的 gem,其中包含用于测试项目的 Rails 3.1.1 应用程序。我正在尝试设置 Travis-CI 以进行持续集成,但是我不知道如何设置我的 .travis
如何指定:语言:.travis.yml 中的无? 我不指定语言,默认使用 Ruby。 我没有 ruby 。我正在使用 C、C++、Ocaml、Python 和 Felix。 构建脚本只是“制作”。 最
我正在使用 gitlab pages部署作业的输出。我有 3 个不同的工作产生 html输出。一项工作总是在运行。其他 2 个作业是可选的,因此它们是手动运行的。 如何将手 Action 业的输出部署
我在 gitlab.com 上有一个使用 CI 功能的私有(private)存储库。一些 CI 作业会创建存储的工件文件。我刚刚通过将其添加到 CI 配置中实现了一天后自动删除工件: expire_i
假设我为一个项目配置了多个作业,如下所示: build_win32: script: ... build_ios: script: ... unit_tests: script: ...
如何创建跨越多个阶段的 CI 作业以提高并行性? 如下图所示: 这个想法是slow_build应该最早开始build ,但是 test不依赖它,所以 test应该可以尽快启动build已经完成了。 (
我有一个 CI 管道,它可能正在做一些半变态的事情。我们不要争论这部分。 作为 CI 的一部分,我将生成一个工件 ( README.md ),我希望将其提交并推回同一存储库。只需使用 git push
我的项目同时使用nodejs和java 我尝试从 node_js 构建开始,然后安装 java(因为这是一个 npm 模块) 但是安装java的脚本失败了,而且我认为当已经存在java构建时就没有必要
我不想为了运行构建而将每一个小的更改都推送到 .travis.yml 以及对源代码所做的每一个小的更改。使用jenkins,您可以下载jenkins并在本地运行。特拉维斯提供这样的东西吗? Note:
主题。 这是否意味着在免费帐户中我的 api 请求数量有限? 响应部分示例: { "@type": "pending", "remaining_requests": 9, "reposit
有什么办法可以按顺序从舞台运行作业吗?我尝试过使用依赖项来做到这一点 job1: stage:deploy ... job2: stage:deploy dependencies:
我正在努力为多个项目设置 gitlab 运行程序,我们希望能够为所有项目设置环境变量。我尝试在 .bashrc 中为 gitlab-runner 和 root 用户设置全局变量,但在 CI 脚本过程中
Travis 有一种针对不同 PHP 版本测试项目的简单方法。 现在我想为插件运行测试。为此,我编写了一个在 .travis.yml 的安装阶段调用的脚本,它检查主项目并将我的插件源移动到正确的目录中
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。
我是一名优秀的程序员,十分优秀!