File tree Expand file tree Collapse file tree 1 file changed +20
-10
lines changed Expand file tree Collapse file tree 1 file changed +20
-10
lines changed Original file line number Diff line number Diff line change @@ -29,7 +29,25 @@ export function isProjectUsingNpm(cwd: string) {
29
29
return findUp . sync ( 'package-lock.json' , { cwd} ) ;
30
30
}
31
31
32
- const registry = getNpmRegistryUrl ( ) ;
32
+ export const getNpmRegistryUrl = ( ( ) => {
33
+ // Lazily resolve npm registry url since it is only needed when initializing a
34
+ // new project.
35
+ let registryUrl = '' ;
36
+ return ( ) => {
37
+ if ( ! registryUrl ) {
38
+ try {
39
+ registryUrl = execSync (
40
+ 'npm config get registry --workspaces=false --include-workspace-root' ,
41
+ )
42
+ . toString ( )
43
+ . trim ( ) ;
44
+ } catch {
45
+ registryUrl = 'https://registry.npmjs.org/' ;
46
+ }
47
+ }
48
+ return registryUrl ;
49
+ } ;
50
+ } ) ( ) ;
33
51
34
52
/**
35
53
* Convert an npm tag to a concrete version, for example:
@@ -40,7 +58,7 @@ export async function npmResolveConcreteVersion(
40
58
packageName : string ,
41
59
tagOrVersion : string ,
42
60
) : Promise < string > {
43
- const url = new URL ( registry ) ;
61
+ const url = new URL ( getNpmRegistryUrl ( ) ) ;
44
62
url . pathname = `${ packageName } /${ tagOrVersion } ` ;
45
63
const resp = await fetch ( url ) ;
46
64
if (
@@ -58,11 +76,3 @@ export async function npmResolveConcreteVersion(
58
76
const json : any = await resp . json ( ) ;
59
77
return json . version ;
60
78
}
61
-
62
- export function getNpmRegistryUrl ( ) : string {
63
- try {
64
- return execSync ( 'npm config get registry' ) . toString ( ) . trim ( ) ;
65
- } catch {
66
- return 'https://registry.npmjs.org/' ;
67
- }
68
- }
You can’t perform that action at this time.
0 commit comments