Skip to content

fix: migrate from NPM_CONFIG_PRODUCTION to NPM_CONFIG_OMIT#369

Draft
iloveitaly wants to merge 5 commits intorailwayapp:mainfrom
iloveitaly:claude/npm-omit-migration-01TxuroycdoHafSVazyMibFN
Draft

fix: migrate from NPM_CONFIG_PRODUCTION to NPM_CONFIG_OMIT#369
iloveitaly wants to merge 5 commits intorailwayapp:mainfrom
iloveitaly:claude/npm-omit-migration-01TxuroycdoHafSVazyMibFN

Conversation

@iloveitaly
Copy link
Collaborator

Replace the deprecated NPM_CONFIG_PRODUCTION environment variable with NPM_CONFIG_OMIT=dev,optional for exact parity with previous behavior.

Replace the deprecated NPM_CONFIG_PRODUCTION environment variable with
NPM_CONFIG_OMIT=dev,optional for exact parity with previous behavior.

Changes:
- Remove --omit=dev flag from npm prune command
- Set NPM_CONFIG_OMIT=dev,optional in prune step instead of NPM_CONFIG_PRODUCTION=true
- This approach uses environment variables as recommended

The new approach:
- Omits devDependencies (via "dev")
- Omits optionalDependencies (via "optional")
- Maintains NODE_ENV=production for lifecycle scripts

This provides exact behavioral parity with the old NPM_CONFIG_PRODUCTION=true
approach while using the modern npm configuration method.
@iloveitaly iloveitaly force-pushed the claude/npm-omit-migration-01TxuroycdoHafSVazyMibFN branch from 072d9af to c66c64b Compare November 21, 2025 14:25
@iloveitaly iloveitaly changed the title feat: migrate from NPM_CONFIG_PRODUCTION to NPM_CONFIG_OMIT fix: migrate from NPM_CONFIG_PRODUCTION to NPM_CONFIG_OMIT Nov 22, 2025
Remove stderrAllowed from node examples that no longer need it after
migrating from NPM_CONFIG_PRODUCTION to NPM_CONFIG_OMIT. The deprecated
NPM_CONFIG_PRODUCTION flag was causing npm warnings that required
stderr to be allowed.

Affected examples:
- node-npm
- node-prisma
- node-remix
- node-latest-npm-native-deps
- node-npm-install-in-build
- node-oldest

Examples that keep stderrAllowed have legitimate reasons:
- node-bun/node-bun-no-deps: Bun routes console.log/error to stderr
- node-tanstack-start: Framework outputs to stderr during startup
Remove NPM_CONFIG_PRODUCTION=false from the GetNodeEnvVars function
used during install and runtime. This deprecated config option was
causing npm warnings even when set to false.

Changes:
- Remove NPM_CONFIG_PRODUCTION from node environment variables
- Update documentation to reflect removed variable
- npm's default behavior is to install all dependencies, which is what we want

The complete migration from NPM_CONFIG_PRODUCTION is now:
- Install step: No NPM_CONFIG_PRODUCTION (installs all deps by default)
- Prune step: NPM_CONFIG_OMIT=dev,optional (removes dev and optional deps)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants