15815213711
2024-08-26 67b8b6731811983447e053d4396b3708c14dfe3c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
'use strict';
const path = require('path');
const Conf = require('./lib/conf');
const defaults = require('./lib/defaults');
 
// https://github.com/npm/npm/blob/latest/lib/config/core.js#L101-L200
module.exports = opts => {
    const conf = new Conf(Object.assign({}, defaults.defaults));
 
    conf.add(Object.assign({}, opts), 'cli');
    conf.addEnv();
    conf.loadPrefix();
 
    const projectConf = path.resolve(conf.localPrefix, '.npmrc');
    const userConf = conf.get('userconfig');
 
    if (!conf.get('global') && projectConf !== userConf) {
        conf.addFile(projectConf, 'project');
    } else {
        conf.add({}, 'project');
    }
 
    conf.addFile(conf.get('userconfig'), 'user');
 
    if (conf.get('prefix')) {
        const etc = path.resolve(conf.get('prefix'), 'etc');
        conf.root.globalconfig = path.resolve(etc, 'npmrc');
        conf.root.globalignorefile = path.resolve(etc, 'npmignore');
    }
 
    conf.addFile(conf.get('globalconfig'), 'global');
    conf.loadUser();
 
    const caFile = conf.get('cafile');
 
    if (caFile) {
        conf.loadCAFile(caFile);
    }
 
    return conf;
};
 
module.exports.defaults = Object.assign({}, defaults.defaults);