安装npm全局依赖(适用于package.json中的所有依赖项):npm install --global

8
我想要全局安装我的package.json文件中的所有依赖项。 我尝试运行 npm install -g 但这会在本地安装包的依赖项。 是否可能全局安装所有的包依赖项?

你可以阅读他们的文档:https://docs.npmjs.com/cli/install - Lucas Dias
文档说明使用“-g或--global”应该可以做到,但这并没有全局安装软件包。 - Leo
1
它将在全局范围内安装指定的软件包,而不是package.json中的所有软件包,因为其中有两个作用域:devDependenciesdependencies - Lucas Dias
我知道如果我通过命令参数发送软件包,例如 npm install global -g protractor 将会起作用。但是我想要的是在 package.json 依赖项中定义要全局安装的软件包列表。 - Leo
比我想象的要容易,而且你没有在之前搜索是你的过错。 - Lucas Dias
显示剩余2条评论
1个回答

3

把以下内容保存在项目的根目录下,命名为package.js

let json = require('./package.json')
const ob = json
var a = 'npm i -g '
// @types/slug ^0.9.1
Object.entries(ob['dependencies']).forEach(e => {
    a = a + ' ' + e[0] + '@' + e[1] + ' '
    // console.log(e[0], )
})
const { exec } = require('child_process')
console.log('dependencies', a)
exec(a, (err, stdout, stderr) => {
    if (err) {
        //some err occurred
        console.error(err)
    } else {
        // the *entire* stdout and stderr (buffered)
        console.log(`stdout: ${stdout}`)
        console.log(`stderr: ${stderr}`)
    }
})


var b = 'npm i -g '
// @types/slug ^0.9.1
Object.entries(ob['devDependencies']).forEach(e => {
    b = b + ' ' + e[0] + '@' + e[1] + ' '
    // console.log(e[0], )
})
console.log('devDependencies', b)
exec(b, (err, stdout, stderr) => {
    if (err) {
        //some err occurred
        console.error(err)
    } else {
        // the *entire* stdout and stderr (buffered)
        console.log(`stdout: ${stdout}`)
        console.log(`stderr: ${stderr}`)
    }
})

现在运行 node package.js 如果遇到管理员问题,请使用sudo node package.js运行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接