-
Notifications
You must be signed in to change notification settings - Fork 4
RU-T47 Fixing ios build #226
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
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: Resgrid/Unit
Length of output: 508
🏁 Script executed:
Repository: Resgrid/Unit
Length of output: 4430
🌐 Web query:
Yarn v1 YARN_PRODUCTION environment variable NODE_ENV production💡 Result:
In Yarn v1 (Classic):
NODE_ENV=productionmakesyarn installskipdevDependenciesby default. The Classic docs state: “Yarn will not install any package listed indevDependenciesif theNODE_ENVenvironment variable is set toproduction.” [1]yarn install --production/--prodis how you force/override that behavior regardless ofNODE_ENV(the docs: “Use this flag to instruct Yarn to ignoreNODE_ENVand take its production-or-not status from this flag instead.”). [1]About
YARN_PRODUCTION:YARN_PRODUCTION=trueis commonly used by Heroku’s Node.js classic buildpack to tell the build to “Only Installdependencies…YARN_PRODUCTION=truefor Yarn v1.” [2]devDependenciesduring dependency-tree resolution (which can look like it’s “installing” them in logs), but Heroku notes Yarn “isn’t installing thedevDependencies” in that case. [3]Practical combos
NODE_ENV=production yarn install(oryarn install --prod).YARN_PRODUCTION=true(and/orNPM_CONFIG_PRODUCTION=true) per Heroku docs. [2]Sources
🌐 Web query:
YARN_PRODUCTION=false NODE_ENV=production Yarn v1 override precedence💡 Result:
In Yarn v1 (Classic), the “production install” decision (i.e., whether to skip
devDependencies) works like this:If you pass
yarn install --production[=true|false], that flag wins and Yarn ignoresNODE_ENVfor this decision. So--production=falseforces devDependencies to be installed even ifNODE_ENV=production. [1]If you do not pass
--production, thenNODE_ENV=productionmakes Yarn skipdevDependenciesby default. [1]Separately (and this is often where the confusion comes from): on platforms that do an extra “prune devDependencies” build step (e.g., Heroku’s classic Node buildpack / DigitalOcean App Platform buildpacks), setting:
YARN_PRODUCTION=falseskips that pruning step even ifNODE_ENV=production, effectively letting devDependencies remain installed in the slug/image while keepingNODE_ENV=production. [2][3]So with
YARN_PRODUCTION=false NODE_ENV=production:NODE_ENV=productionas production unless you also pass--production=false. [1]YARN_PRODUCTION=false. [2][3]Sources:
[1] Yarn Classic
yarn install --production[=true|false]docs (explains--productionoverrides/ignoresNODE_ENV). (classic.yarnpkg.com)[2] Heroku “Node.js Classic Buildpack Builds” (Skip pruning using Yarn v1:
YARN_PRODUCTION=false). (devcenter.heroku.com)[3] DigitalOcean App Platform Node.js buildpack docs (Skip pruning:
YARN_PRODUCTION=falsefor Yarn v1). (docs.digitalocean.com)Citations:
YARN_PRODUCTION=falsemay not overrideNODE_ENV=productionduring Yarn v1 install—confirm EAS CLI behavior and consider alternative fix.The concern about
NODE_ENV=productionskipping devDependencies is valid. However,YARN_PRODUCTION=falseis designed for buildpack-level pruning steps (Heroku, DigitalOcean), not for Yarn v1's own install behavior. In Yarn v1, only the--production=falseCLI flag reliably overridesNODE_ENV=productionduring install. If EAS CLI internally setsNODE_ENV=productionand callsyarn installwithout the--production=falseflag, thenYARN_PRODUCTION=falsealone will not prevent devDependencies from being skipped.Verify whether EAS CLI uses a buildpack-style pruning approach (in which case
YARN_PRODUCTION=falsehelps) or directly invokes Yarn install withNODE_ENV=production(in which caseNODE_ENV=developmentor explicit--production=falsewould be more reliable).🤖 Prompt for AI Agents