File tree Expand file tree Collapse file tree 2 files changed +20
-0
lines changed
Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Original file line number Diff line number Diff line change 11type PackageManagerName = 'pnpm' | 'yarn' | 'npm'
22
3+ const userAgentPattern = / ( p n p m | y a r n | n p m ) \/ ( [ 0 - 9 ] + \. [ 0 - 9 ] + \. [ 0 - 9 ] + [ ^ ] * ) / i
4+
35export function detectPackageManagerFromEnv ( ) : PackageManagerName {
46 const userAgent = process . env . npm_config_user_agent || ''
57 if ( userAgent . includes ( 'pnpm' ) ) return 'pnpm'
@@ -13,3 +15,17 @@ export function detectPackageManagerFromEnv(): PackageManagerName {
1315
1416 return 'npm'
1517}
18+
19+ export function getPackageManagerSpecFromEnv ( ) : string | null {
20+ const userAgent = process . env . npm_config_user_agent || ''
21+ const match = userAgent . match ( userAgentPattern )
22+
23+ if ( ! match ) return null
24+
25+ const name = match [ 1 ]
26+ const version = match [ 2 ]
27+
28+ if ( ! name || ! version ) return null
29+
30+ return `${ name } @${ version } `
31+ }
Original file line number Diff line number Diff line change 99import * as path from 'path'
1010import * as fs from 'fs/promises'
1111import * as messages from '../lib/messages'
12+ import { getPackageManagerSpecFromEnv } from '../lib/package-manager'
1213
1314const extensionJsPackageJsonScripts = {
1415 dev :
@@ -71,10 +72,13 @@ export async function overridePackageJson(
7172 process . env . EXTENSION_ENV === 'development' ? '*' : `^${ cliVersion } `
7273 }
7374
75+ const packageManagerSpec =
76+ packageJson . packageManager || getPackageManagerSpecFromEnv ( )
7477 const packageMetadata = {
7578 ...packageJson ,
7679 name : path . basename ( projectPath ) ,
7780 private : true ,
81+ ...( packageManagerSpec ? { packageManager : packageManagerSpec } : { } ) ,
7882 scripts : {
7983 ...packageJson . scripts ,
8084 ...extensionJsPackageJsonScripts
You can’t perform that action at this time.
0 commit comments