Skip to content

Commit

Permalink
fix: only devDependencies are installed regardless of the node env (#…
Browse files Browse the repository at this point in the history
…4805)

close #4745
  • Loading branch information
spencer17x committed May 27, 2022
1 parent 95ac386 commit ae2f845
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .changeset/green-geckos-scream.md
@@ -0,0 +1,6 @@
---
"@pnpm/config": patch
"pnpm": patch
---

`NODE_ENV=production pnpm install --dev` should only install dev deps [#4745](https://github.com/pnpm/pnpm/pull/4745).
9 changes: 9 additions & 0 deletions packages/config/src/index.ts
Expand Up @@ -338,6 +338,15 @@ export default async (

pnpmConfig.packageManager = packageManager

if (env.NODE_ENV) {
if (cliOptions.production) {
pnpmConfig.only = 'production'
}
if (cliOptions.dev) {
pnpmConfig.only = 'dev'
}
}

if (pnpmConfig.only === 'prod' || pnpmConfig.only === 'production' || !pnpmConfig.only && pnpmConfig.production) {
pnpmConfig.production = true
pnpmConfig.dev = false
Expand Down
9 changes: 9 additions & 0 deletions packages/pnpm/test/install/only.ts
Expand Up @@ -26,6 +26,15 @@ test('production install (with production NODE_ENV)', async () => {
await project.has('is-positive')
})

test('dev dependencies install (with production NODE_ENV)', async () => {
const project = prepare(basicPackageManifest)

await execPnpm(['install', '--dev'], { env: { NODE_ENV: 'production' } })

await project.hasNot(Object.keys(basicPackageManifest.dependencies!)[0])
await project.has('@rstacruz/tap-spec')
})

test('install dev dependencies only', async () => {
const project = prepare({
dependencies: {
Expand Down

0 comments on commit ae2f845

Please sign in to comment.