Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build failed if --production or npm ci are used instead of development #416

Closed
emanuelb opened this issue Feb 14, 2021 · 5 comments
Closed
Labels
Bug Something isn't working

Comments

@emanuelb
Copy link

Describe the bug
Tried to build the app with using environment variable NODE_ENV="production" which is equivalent to adding --production argument such as npm install --production command, the build failed with various errors, same happen when npm ci is used instead.
building with npm install --development succeed.

To Reproduce
Steps to reproduce the behavior:

  1. remove ./node_modules/ folder in project, or do git clone https://github.com/ZeusLN/zeus/; cd zeus;
  2. run npm install --production
  3. run cd android; ./gradlew assembleRelease

Expected behavior
it's also possible to build the app with npm ci and npm install --production which install less deps and is more secure due to it, also the npm ci which in addition to using the production argument, work differently in a way that help achieve reproducible builds.

The errors are:

  1. postinstall failure in npm install:

zeus@0.4.0 postinstall /app/zeus
rn-nodeify --install --hack; npx jetify
sh: rn-nodeify: not found

  1. on gradle command errors:
> Task :app:bundleReleaseJsAndAssets
warn Package @babel/plugin-proposal-decorators has been ignored because it contains invalid configuration. Reason: Cannot find module '@babel/plugin-proposal-decorators/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package @react-native-community/eslint-config has been ignored because it contains invalid configuration. Reason: Cannot find module '@react-native-community/eslint-config/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package @types/base-64 has been ignored because it contains invalid configuration. Reason: Cannot find module '@types/base-64/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package @types/jest has been ignored because it contains invalid configuration. Reason: Cannot find module '@types/jest/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package @types/lodash has been ignored because it contains invalid configuration. Reason: Cannot find module '@types/lodash/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package @types/react-native-permissions has been ignored because it contains invalid configuration. Reason: Cannot find module '@types/react-native-permissions/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package @types/react-native-vector-icons has been ignored because it contains invalid configuration. Reason: Cannot find module '@types/react-native-vector-icons/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package @types/react-test-renderer has been ignored because it contains invalid configuration. Reason: Cannot find module '@types/react-test-renderer/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package babel-jest has been ignored because it contains invalid configuration. Reason: Cannot find module 'babel-jest/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package eslint has been ignored because it contains invalid configuration. Reason: Cannot find module 'eslint/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package hermes-engine has been ignored because it contains invalid configuration. Reason: Cannot find module 'hermes-engine/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package jest has been ignored because it contains invalid configuration. Reason: Cannot find module 'jest/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package metro-react-native-babel-preset has been ignored because it contains invalid configuration. Reason: Cannot find module 'metro-react-native-babel-preset/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package prettier has been ignored because it contains invalid configuration. Reason: Cannot find module 'prettier/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package react-test-renderer has been ignored because it contains invalid configuration. Reason: Cannot find module 'react-test-renderer/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package rn-nodeify has been ignored because it contains invalid configuration. Reason: Cannot find module 'rn-nodeify/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warn Package typescript has been ignored because it contains invalid configuration. Reason: Cannot find module 'typescript/package.json'
Require stack:
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/config/resolveNodeModuleDir.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/tools/releaseChecker/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/runServer.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/server/server.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/commands/index.js
- /app/zeus/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js
- /app/zeus/node_modules/react-native/cli.js
warning: the transform cache was reset.
Loading dependency graph, done.
error index.js: Cannot find module '@babel/plugin-proposal-decorators' from '/app/zeus'. Run CLI with --verbose flag for more details.
Error: Cannot find module '@babel/plugin-proposal-decorators' from '/app/zeus'
    at Function.module.exports [as sync] (/app/zeus/node_modules/resolve/lib/sync.js:58:15)
    at resolveStandardizedName (/app/zeus/node_modules/@babel/core/lib/config/files/plugins.js:101:31)
    at resolvePlugin (/app/zeus/node_modules/@babel/core/lib/config/files/plugins.js:54:10)
    at loadPlugin (/app/zeus/node_modules/@babel/core/lib/config/files/plugins.js:62:20)
    at createDescriptor (/app/zeus/node_modules/@babel/core/lib/config/config-descriptors.js:154:9)
    at /app/zeus/node_modules/@babel/core/lib/config/config-descriptors.js:109:50
    at Array.map (<anonymous>)
    at createDescriptors (/app/zeus/node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
    at createPluginDescriptors (/app/zeus/node_modules/@babel/core/lib/config/config-descriptors.js:105:10)

> Task :app:bundleReleaseJsAndAssets FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:bundleReleaseJsAndAssets'.
> Process 'command 'npx'' finished with non-zero exit value 1
@Giszmo
Copy link

Giszmo commented Apr 8, 2021

Congratulations to ZeusLN for your 1000 downloads on Google Play! That made me try to reproduce the Play Store build, too and I ran into issues, too. I think though my main and/or only issue is that I fail to build the app without signing:

$ git clone https://github.com/ZeusLN/zeus
$ cd zeus/
$ git tag | grep 0.5.1
v0.5.1
$ git checkout v0.5.1 
$ docker run -it --volume $PWD:/mnt --workdir /mnt --rm beevelop/cordova bash
root@b5e24bbdc208:/mnt# npm install  
root@b5e24bbdc208:/mnt/android# yes | $ANDROID_HOME/tools/bin/sdkmanager "platforms;android-28"
root@b5e24bbdc208:/mnt# cd android
root@b5e24bbdc208:/mnt/android# ./gradlew assembleRelease
...
Error: Unable to resolve module stream from /mnt/node_modules/cipher-base/index.js: stream could not be found within the project.
...
root@b5e24bbdc208:/mnt/android# npm install stream
root@b5e24bbdc208:/mnt/android# ./gradlew assembleRelease
...
> Task :app:validateSigningRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:validateSigningRelease'.
> Keystore file not set for signing config release
...

As I don't want to install it but verify the Play Store build, creating a signing setup should not be required.

@emanuelb
Copy link
Author

emanuelb commented Apr 8, 2021

@Giszmo to build this app latest version 5.1 see Containerfile at:
https://gitlab.com/walletscrutiny/walletScrutinyCom/-/issues/87#note_534083791
The branch play-releases should be used instead of the tag (which point to f-droid release), also the 5.1 tag/release on github mention the commit for google-play release:
https://github.com/ZeusLN/zeus/releases/tag/v0.5.1

Google Play Release commit: 580d12a

Regarding the signing, just run the commands:

 cd android; \
    keytool -genkey -alias zeus_alias -keystore app/zeus.pfx -storetype PKCS12 -keyalg RSA -keysize 4096 -storepass zeus_alias -keypass zeus_alias -validity 10000 -dname CN=IL; \
    printf "\nMYAPP_RELEASE_STORE_FILE=zeus.pfx\nMYAPP_RELEASE_STORE_PASSWORD=zeus_alias\nMYAPP_RELEASE_KEY_PASSWORD=zeus_alias\nMYAPP_RELEASE_KEY_ALIAS=zeus_alias\n" >> gradle.properties;

which will generate the required signing.

@Giszmo
Copy link

Giszmo commented Apr 8, 2021

I found that out eventually, too. It should either be documented in the build instructions or preferably not necessary if I don't want to release the app.

That said, I did get a huge diff and ZeusLN at Twitter even announced that the app isn't reproducible right now. :(

@emanuelb
Copy link
Author

Opened new issue regarding reproducibility of APK latest version 0.6.0 with more details at: #898, this issue still apply as currently production NODE_ENV mode can't be used to compile the app.

@Bosch-0 Bosch-0 added the Bug Something isn't working label Mar 15, 2022
@kaloudis
Copy link
Contributor

This is now solved with the addition of reproducible builds https://github.com/ZeusLN/zeus#reproducible-builds

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants