reify-finish.js 753 B

123456789101112131415161718192021
  1. const reifyOutput = require('./reify-output.js')
  2. const ini = require('ini')
  3. const { writeFile } = require('node:fs/promises')
  4. const { resolve } = require('node:path')
  5. const reifyFinish = async (npm, arb) => {
  6. // if we are using a builtin config, and just installed npm as a top-level global package, we have to preserve that config.
  7. if (arb.options.global) {
  8. const npmNode = arb.actualTree.inventory.get('node_modules/npm')
  9. if (npmNode) {
  10. const builtinConf = npm.config.data.get('builtin')
  11. if (!builtinConf.loadError) {
  12. const content = ini.stringify(builtinConf.raw).trim() + '\n'
  13. await writeFile(resolve(npmNode.path, 'npmrc'), content)
  14. }
  15. }
  16. }
  17. reifyOutput(npm, arb)
  18. }
  19. module.exports = reifyFinish