nrwl / nx-labs

A collection of Nx plugins
MIT License
141 stars 51 forks source link

Expo upgrade and EAS build + deploy #15

Closed bhaskarmurthy closed 2 years ago

bhaskarmurthy commented 2 years ago

Hi - are there any plans to support the expo upgrade command for Expo projects, to facilitate upgrading an existing app to latest Expo version and library dependencies?

Similarly - any plans to support EAS build commands?

Not sure if you're accepting contributions, but I'm happy to help if that is possible. Thanks!

jaysoo commented 2 years ago

Hi @bhaskarmurthy We welcome contributions, if you want to open a PR we can review it.

xiongemi commented 2 years ago

you could still use eas, just go to your app folder, cd apps/<your app> and run eas from there.

violabg commented 2 years ago

you could still use eas, just go to your app folder, cd apps/<your app> and run eas from there.

I tried that, but during build on eas site I'm getting this error while is trying to do yarn in apps/mobile/

error An unexpected error occurred: "EEXIST: file already exists, mkdir '/Users/expo/workingdir/build/apps/mobile/node_modules'"

xiongemi commented 2 years ago

@violabg i think i got it working in https://github.com/xiongemi/nx-expo-poetry

i need to add a script in app's package.json like:

"eas-build-pre-install": "cd <%= offsetFromRoot %> && <%= packageManager %> install && cp <%= packageLockFile %> ./<%= appProjectRoot %>/ && mv ./<%= appProjectRoot %>/eas.js ./index.js",

for my project, it is like https://github.com/xiongemi/nx-expo-poetry/blob/main/apps/poetry-app/package.json#L7:

 "eas-build-pre-install": "cd ../../ && npm install && cp package-lock.json ./apps/poetry-app/ && mv ./apps/poetry-app/eas.js ./index.js",
violabg commented 2 years ago

thanks xiongemi, I already have that script, but still get the error mention above during build on eas site.

violabg commented 2 years ago

I have added the post build script on the package.json under my apps/mobile folder:

"scripts": {
    "eas-build-pre-install": "cd ../../ && yarn install && cp yarn.lock ./apps/mobile/ && mv ./apps/mobile/eas.js ./index.js",
    "eas-build-post-install": "cd ../../ && nx sync-deps mobile && nx ensure-symlink mobile"
  }

but nothing changed, this is the complete error log during build on eas (see line 86):

Running yarn in directory 'apps/mobile' 
2
yarn install v1.22.17
3
[1/4] Resolving packages...
4
[2/4] Fetching packages...
5
[3/4] Linking dependencies...
6
[stderr] warning " > @testing-library/react-native@9.0.0" has unmet peer dependency "react-test-renderer@>=16.0.0".
7
[stderr] warning "react-native > metro-react-native-babel-transformer@0.66.2" has unmet peer dependency "@babel/core@*".
8
[stderr] warning "react-native > react-native-codegen > jscodeshift@0.11.0" has unmet peer dependency "@babel/preset-env@^7.1.6".
9
[stderr] warning "react-native-reanimated > @babel/plugin-transform-object-assign@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
10
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-optional-catch-binding@7.8.3" has unmet peer dependency "@babel/core@^7.0.0-0".
11
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > babel-plugin-polyfill-corejs2@0.3.1" has unmet peer dependency "@babel/core@^7.0.0-0".
12
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > babel-plugin-polyfill-corejs3@0.5.1" has unmet peer dependency "@babel/core@^7.0.0-0".
13
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > babel-plugin-polyfill-regenerator@0.3.1" has unmet peer dependency "@babel/core@^7.0.0-0".
14
[stderr] warning "expo > babel-preset-expo > @babel/plugin-proposal-decorators@7.17.2" has unmet peer dependency "@babel/core@^7.0.0-0".
15
[stderr] warning "expo > babel-preset-expo > @babel/plugin-transform-react-jsx@7.17.3" has unmet peer dependency "@babel/core@^7.0.0-0".
16
[stderr] warning "expo > babel-preset-expo > @babel/preset-env@7.16.11" has unmet peer dependency "@babel/core@^7.0.0-0".
17
[stderr] warning "expo > babel-preset-expo > metro-react-native-babel-preset@0.64.0" has unmet peer dependency "@babel/core@*".
18
[stderr] warning "expo > babel-preset-expo > @babel/plugin-proposal-decorators > @babel/helper-create-class-features-plugin@7.17.1" has unmet peer dependency "@babel/core@^7.0.0".
19
[stderr] warning "expo > babel-preset-expo > @babel/plugin-proposal-decorators > @babel/plugin-syntax-decorators@7.17.0" has unmet peer dependency "@babel/core@^7.0.0-0".
20
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.16.7" has unmet peer dependency "@babel/core@^7.0.0".
21
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.16.7" has unmet peer dependency "@babel/core@^7.13.0".
22
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-async-generator-functions@7.16.8" has unmet peer dependency "@babel/core@^7.0.0-0".
23
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-class-static-block@7.16.7" has unmet peer dependency "@babel/core@^7.12.0".
24
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-dynamic-import@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
25
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-export-namespace-from@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
26
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-json-strings@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
27
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-logical-assignment-operators@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
28
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-numeric-separator@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
29
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-private-methods@7.16.11" has unmet peer dependency "@babel/core@^7.0.0-0".
30
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-private-property-in-object@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
31
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-unicode-property-regex@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
32
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-async-generators@7.8.4" has unmet peer dependency "@babel/core@^7.0.0-0".
33
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-class-static-block@7.14.5" has unmet peer dependency "@babel/core@^7.0.0-0".
34
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-export-namespace-from@7.8.3" has unmet peer dependency "@babel/core@^7.0.0-0".
35
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-json-strings@7.8.3" has unmet peer dependency "@babel/core@^7.0.0-0".
36
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-logical-assignment-operators@7.10.4" has unmet peer dependency "@babel/core@^7.0.0-0".
37
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-numeric-separator@7.10.4" has unmet peer dependency "@babel/core@^7.0.0-0".
38
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-private-property-in-object@7.14.5" has unmet peer dependency "@babel/core@^7.0.0-0".
39
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-top-level-await@7.14.5" has unmet peer dependency "@babel/core@^7.0.0-0".
40
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-dotall-regex@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
41
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-duplicate-keys@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
42
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-modules-amd@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
43
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-modules-systemjs@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
44
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-modules-umd@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
45
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-named-capturing-groups-regex@7.16.8" has unmet peer dependency "@babel/core@^7.0.0".
46
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-new-target@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
47
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-reserved-words@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
48
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-typeof-symbol@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
49
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-unicode-escapes@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
50
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/preset-modules@0.1.5" has unmet peer dependency "@babel/core@^7.0.0-0".
51
[stderr] warning "react-native-reanimated > react-native-screens > react-native-gradle-plugin > react-native-codegen > jscodeshift@0.13.1" has unmet peer dependency "@babel/preset-env@^7.1.6".
52
[stderr] warning " > react-native-web@0.17.7" has unmet peer dependency "react-dom@>=17.0.1".
53
[stderr] warning " > native-base@3.3.7" has unmet peer dependency "@types/react@*".
54
[stderr] warning " > native-base@3.3.7" has unmet peer dependency "@types/react-native@*".
55
[stderr] warning " > native-base@3.3.7" has unmet peer dependency "react-dom@*".
56
[stderr] warning " > native-base@3.3.7" has incorrect peer dependency "react-native-safe-area-context@3.1.9".
57
[stderr] warning " > native-base@3.3.7" has incorrect peer dependency "react-native-svg@12.1.0".
58
[stderr] warning "native-base > @react-native-aria/overlays@0.3.3-rc.0" has unmet peer dependency "react-dom@*".
59
[stderr] warning "native-base > @react-native-aria/combobox > @react-aria/combobox@3.2.3" has unmet peer dependency "react-dom@^16.8.0 || ^17.0.0-rc.1".
60
[stderr] warning "native-base > @react-native-aria/combobox > @react-aria/live-announcer@3.0.3" has unmet peer dependency "react-dom@^16.8.0 || ^17.0.0-rc.1".
61
[stderr] warning "native-base > @react-native-aria/combobox > @react-aria/overlays@3.7.5" has unmet peer dependency "react-dom@^16.8.0 || ^17.0.0-rc.1".
62
[stderr] warning "native-base > @react-native-aria/combobox > @react-aria/combobox > @react-aria/menu@3.4.1" has unmet peer dependency "react-dom@^16.8.0 || ^17.0.0-rc.1".
63
[stderr] warning "@nrwl/expo > @nrwl/detox@13.8.3" has unmet peer dependency "detox@^19.4.5".
64
[stderr] warning "@nrwl/expo > @nrwl/linter > @phenomnomnominal/tsquery@4.1.1" has unmet peer dependency "typescript@^3 || ^4".
65
[stderr] warning "@nrwl/expo > @nrwl/react > eslint-plugin-import@2.25.4" has unmet peer dependency "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8".
66
[stderr] warning "@nrwl/expo > @nrwl/react > eslint-plugin-jsx-a11y@6.5.1" has unmet peer dependency "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8".
67
[stderr] warning "@nrwl/expo > @nrwl/react > eslint-plugin-react@7.28.0" has unmet peer dependency "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8".
68
[stderr] warning "@nrwl/expo > @nrwl/react > eslint-plugin-react-hooks@4.3.0" has unmet peer dependency "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0".
69
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/cypress > @cypress/webpack-preprocessor@5.11.0" has unmet peer dependency "@babel/preset-env@^7.0.0".
70
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/cypress > @cypress/webpack-preprocessor@5.11.0" has unmet peer dependency "babel-loader@^8.0.2".
71
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/cypress > ts-loader@9.2.6" has unmet peer dependency "typescript@*".
72
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2@0.31.1" has unmet peer dependency "typescript@>=2.4.0".
73
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > ts-node@9.1.1" has unmet peer dependency "typescript@>=2.7".
74
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2 > @yarn-tool/resolve-package@1.0.42" has unmet peer dependency "@types/node@*".
75
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2 > @yarn-tool/resolve-package > @ts-type/package-dts@1.0.58" has unmet peer dependency "@types/bluebird@*".
76
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2 > @yarn-tool/resolve-package > @ts-type/package-dts@1.0.58" has unmet peer dependency "@types/node@*".
77
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2 > @yarn-tool/resolve-package > @ts-type/package-dts@1.0.58" has unmet peer dependency "ts-toolbelt@*".
78
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2 > @yarn-tool/resolve-package > upath2@3.1.12" has unmet peer dependency "@types/node@*".
79
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2 > @yarn-tool/resolve-package > @ts-type/package-dts > ts-type@2.1.4" has unmet peer dependency "@types/bluebird@*".
80
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2 > @yarn-tool/resolve-package > @ts-type/package-dts > ts-type@2.1.4" has unmet peer dependency "@types/node@*".
81
[stderr] warning "@nrwl/expo > @nrwl/react > @nrwl/web > rollup-plugin-typescript2 > @yarn-tool/resolve-package > @ts-type/package-dts > ts-type@2.1.4" has unmet peer dependency "ts-toolbelt@^9.6.0".
82
[stderr] warning " > graphql-request@4.1.0" has unmet peer dependency "graphql@14 - 16".
83
[stderr] warning " > react-native-paper@4.11.2" has unmet peer dependency "react-native-vector-icons@*".
84
[stderr] warning " > react-native-paper-dates@0.8.7" has unmet peer dependency "react-native-vector-icons@*".
85
[stderr] warning " > react-native-modal-datetime-picker@13.1.0" has unmet peer dependency "@react-native-community/datetimepicker@>=3.0.0".
86
[stderr] error An unexpected error occurred: "EEXIST: file already exists, mkdir '/Users/expo/workingdir/build/apps/mobile/node_modules'".
87
info If you think this is a bug, please open a bug report with the information provided in "/Users/expo/workingdir/build/apps/mobile/yarn-error.log".
88
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
89
yarn exited with non-zero code: 1
xiongemi commented 2 years ago

@violabg I just create a workspace out of the box with yarn and eas build seems to work fine for me:

Running yarn in directory 'apps/mobile' 
yarn install v1.22.17
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[stderr] warning " > @testing-library/react-native@9.0.0" has unmet peer dependency "react@>=16.0.0".
[stderr] warning " > @testing-library/react-native@9.0.0" has unmet peer dependency "react-test-renderer@>=16.0.0".
[stderr] warning " > react-native@0.67.4" has unmet peer dependency "react@17.0.2".
[stderr] warning "react-native > use-subscription@1.5.1" has unmet peer dependency "react@^16.8.0 || ^17.0.0".
[stderr] warning "react-native > metro-react-native-babel-transformer@0.66.2" has unmet peer dependency "@babel/core@*".
[stderr] warning "react-native > react-native-codegen > jscodeshift@0.11.0" has unmet peer dependency "@babel/preset-env@^7.1.6".
[stderr] warning "expo > babel-preset-expo > @babel/plugin-proposal-decorators > @babel/helper-create-class-features-plugin@7.17.6" has unmet peer dependency "@babel/core@^7.0.0".
[stderr] warning "expo > babel-preset-expo > @babel/plugin-transform-react-jsx@7.17.3" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "react-native-reanimated > @babel/plugin-transform-object-assign@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-optional-catch-binding@7.8.3" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > babel-plugin-polyfill-corejs2@0.3.1" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > babel-plugin-polyfill-corejs3@0.5.2" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > babel-plugin-polyfill-regenerator@0.3.1" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/plugin-proposal-decorators@7.17.2" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env@7.16.11" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > metro-react-native-babel-preset@0.64.0" has unmet peer dependency "@babel/core@*".
[stderr] warning "expo > babel-preset-expo > @babel/plugin-proposal-decorators > @babel/plugin-syntax-decorators@7.17.0" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.16.7" has unmet peer dependency "@babel/core@^7.0.0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.16.7" has unmet peer dependency "@babel/core@^7.13.0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-async-generator-functions@7.16.8" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-class-static-block@7.17.6" has unmet peer dependency "@babel/core@^7.12.0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-dynamic-import@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-export-namespace-from@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-json-strings@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-logical-assignment-operators@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-numeric-separator@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-private-methods@7.16.11" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-private-property-in-object@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-proposal-unicode-property-regex@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-async-generators@7.8.4" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-class-static-block@7.14.5" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-export-namespace-from@7.8.3" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-json-strings@7.8.3" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-logical-assignment-operators@7.10.4" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-numeric-separator@7.10.4" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-private-property-in-object@7.14.5" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-syntax-top-level-await@7.14.5" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-dotall-regex@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-duplicate-keys@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-modules-amd@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-modules-systemjs@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-modules-umd@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-named-capturing-groups-regex@7.16.8" has unmet peer dependency "@babel/core@^7.0.0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-new-target@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-reserved-words@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-typeof-symbol@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/plugin-transform-unicode-escapes@7.16.7" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning "expo > babel-preset-expo > @babel/preset-env > @babel/preset-modules@0.1.5" has unmet peer dependency "@babel/core@^7.0.0-0".
[stderr] warning " > react-native-gesture-handler@2.3.2" has unmet peer dependency "react@*".
[stderr] warning " > react-native-reanimated@2.4.1" has unmet peer dependency "react@*".
[stderr] warning " > react-native-screens@3.13.1" has unmet peer dependency "react@*".
[stderr] warning "react-native-reanimated > react-native-screens > react-freeze@1.0.0" has unmet peer dependency "react@^17.0.0".
[stderr] warning " > react-native-safe-area-context@4.2.1" has unmet peer dependency "react@*".
[stderr] warning " > react-native-svg@12.3.0" has unmet peer dependency "react@*".
[stderr] warning " > react-native-web@0.17.7" has unmet peer dependency "react@>=17.0.1".
[stderr] warning " > react-native-web@0.17.7" has unmet peer dependency "react-dom@>=17.0.1".
[4/4] Building fresh packages...
success Saved lockfile.
Done in 26.02s.

are you using yarn workspace monorepo along with the nx?

maybe you could forcefully remove node_modules inpreinstall && postinstall, something like:

"eas-build-pre-install": "rm -r node_modules && cd ../../ && cp yarn.lock ./apps/mobile/ && mv ./apps/mobile/eas.js ./index.js",
    "postinstall": "rm -r node_modules && cd ../.. && yarn install && npx nx sync-deps mobile && npx nx ensure-symlink mobile",
violabg commented 2 years ago

thanks, I've tried to add the post install script

"scripts": {
    "eas-build-pre-install": "rm -r node_modules && cd ../../ && yarn install && cp yarn.lock ./apps/mobile/ && mv ./apps/mobile/eas.js ./index.js",
    "eas-build-post-install": "rm -r node_modules && cd ../.. && yarn install && npx nx sync-deps mobile && npx nx ensure-symlink mobile"
  }

and it passed that error, then on the "Run fast line" step I got this error

❌ error: Build input file cannot be found: '/Users/expo/workingdir/build/apps/mobile/

Build failed: Fastlane build failed with unknown error. Please refer to the "Run fastlane" and "Xcode Logs" phases. Fastlane errors in most cases are not printed at the end of the output, so you may not find any useful information in the last lines of output when looking for an error message.

violabg commented 2 years ago

finally I made it work, I used the script you provided

"scripts": {
    "eas-build-pre-install": "rm -r node_modules && cd ../../ && yarn install && cp yarn.lock ./apps/mobile/ && mv ./apps/mobile/eas.js ./index.js",
    "postinstall": "rm -r node_modules && cd ../.. && yarn install && npx nx sync-deps mobile && npx nx ensure-symlink mobile"
  }

for some reason I had eas-build-post-install instead of postinstall.

thanks a lot

violabg commented 2 years ago

I had some problems with sync-reps and ensure-symlink, were not all dependencies were sync to the apps/expo-app/package.json. for example: "@react-native-community/datetimepicker": "*", "@react-native-community/masked-view": "*", were not added, probably because the were not referenced directly on the project, with a direct import, but needed from other libraries like

"react-native-modal-datetime-picker": "^13.1.0",

this was causing runtime errors when trying to access RNDateTimePicker.

I had to add them manually myself.

willykurmann commented 2 years ago

Hi @xiongemi,

I'm also trying to deploy an expo app existing in a NX workspace with eas and there's 2 things I don't quite understand:

1) if I run eas build from the app folder (e.g. nx/apps/my-expo-app), from my understanding, only the content of this folder will be sent to eas. So how could pre/post install scripts find yarn.lock and all nx folder root files ?

2) after I copied yarn.lock to nx/apps/my-expo-app, I ran eas build --platform android from this folder and I got this error on eas image What am I doing wrong ?

xiongemi commented 2 years ago

Hi @xiongemi,

I'm also trying to deploy an expo app existing in a NX workspace with eas and there's 2 things I don't quite understand:

  1. if I run eas build from the app folder (e.g. nx/apps/my-expo-app), from my understanding, only the content of this folder will be sent to eas. So how could pre/post install scripts find yarn.lock and all nx folder root files ?
  2. after I copied yarn.lock to nx/apps/my-expo-app, I ran eas build --platform android from this folder and I got this error on eas image What am I doing wrong ?

I think this should be fixed with pr https://github.com/nrwl/nx-labs/pull/45. you could run nx migrate @nrwl/expo@latest and then nx migrate --run-migrations