@@ -11,26 +11,36 @@ const home = isWin ? process.env.USERPROFILE : process.env.HOME;
11
11
function getRcPaths ( name : string , cwd : string ) : Array < string > {
12
12
const configPaths = [ ] ;
13
13
14
- function addConfigPath ( ...segments ) {
14
+ function pushConfigPath ( ...segments ) {
15
15
configPaths . push ( path . join ( ...segments ) ) ;
16
+ if ( segments [ segments . length - 1 ] === `.${ name } rc` ) {
17
+ configPaths . push ( path . join ( ...segments . slice ( 0 , - 1 ) , `.${ name } rc.yml` ) ) ;
18
+ }
19
+ }
20
+
21
+ function unshiftConfigPath ( ...segments ) {
22
+ configPaths . unshift ( path . join ( ...segments ) ) ;
23
+ if ( segments [ segments . length - 1 ] === `.${ name } rc` ) {
24
+ configPaths . unshift ( path . join ( ...segments . slice ( 0 , - 1 ) , `.${ name } rc.yml` ) ) ;
25
+ }
16
26
}
17
27
18
28
if ( ! isWin ) {
19
- addConfigPath ( etc , name , 'config' ) ;
20
- addConfigPath ( etc , `${ name } rc` ) ;
29
+ pushConfigPath ( etc , name , 'config' ) ;
30
+ pushConfigPath ( etc , `${ name } rc` ) ;
21
31
}
22
32
23
33
if ( home ) {
24
- addConfigPath ( CONFIG_DIRECTORY ) ;
25
- addConfigPath ( home , '.config' , name , 'config' ) ;
26
- addConfigPath ( home , '.config' , name ) ;
27
- addConfigPath ( home , `.${ name } ` , 'config' ) ;
28
- addConfigPath ( home , `.${ name } rc` ) ;
34
+ pushConfigPath ( CONFIG_DIRECTORY ) ;
35
+ pushConfigPath ( home , '.config' , name , 'config' ) ;
36
+ pushConfigPath ( home , '.config' , name ) ;
37
+ pushConfigPath ( home , `.${ name } ` , 'config' ) ;
38
+ pushConfigPath ( home , `.${ name } rc` ) ;
29
39
}
30
40
31
41
// add .yarnrc locations relative to the cwd
32
42
while ( true ) {
33
- configPaths . unshift ( path . join ( cwd , `.${ name } rc` ) ) ;
43
+ unshiftConfigPath ( cwd , `.${ name } rc` ) ;
34
44
35
45
const upperCwd = path . dirname ( cwd ) ;
36
46
if ( upperCwd === cwd ) {
@@ -45,7 +55,7 @@ function getRcPaths(name: string, cwd: string): Array<string> {
45
55
const envVariable = `${ name } _config` . toUpperCase ( ) ;
46
56
47
57
if ( process . env [ envVariable ] ) {
48
- addConfigPath ( process . env [ envVariable ] ) ;
58
+ pushConfigPath ( process . env [ envVariable ] ) ;
49
59
}
50
60
51
61
return configPaths ;
0 commit comments