mirror of
https://github.com/nodejs/node.git
synced 2025-05-17 08:05:29 +00:00

PR-URL: https://github.com/nodejs/node/pull/40726 Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Voltrex <mohammadkeyvanzade94@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Rich Trott <rtrott@gmail.com>
31 lines
856 B
JavaScript
31 lines
856 B
JavaScript
const reifyOutput = require('./reify-output.js')
|
|
const ini = require('ini')
|
|
const { writeFile } = require('fs').promises
|
|
const {resolve} = require('path')
|
|
|
|
const reifyFinish = async (npm, arb) => {
|
|
await saveBuiltinConfig(npm, arb)
|
|
reifyOutput(npm, arb)
|
|
}
|
|
|
|
const saveBuiltinConfig = async (npm, arb) => {
|
|
const { options: { global }, actualTree } = arb
|
|
if (!global)
|
|
return
|
|
|
|
// if we are using a builtin config, and just installed npm as
|
|
// a top-level global package, we have to preserve that config.
|
|
const npmNode = actualTree.inventory.get('node_modules/npm')
|
|
if (!npmNode)
|
|
return
|
|
|
|
const builtinConf = npm.config.data.get('builtin')
|
|
if (builtinConf.loadError)
|
|
return
|
|
|
|
const content = ini.stringify(builtinConf.raw).trim() + '\n'
|
|
await writeFile(resolve(npmNode.path, 'npmrc'), content)
|
|
}
|
|
|
|
module.exports = reifyFinish
|