如何在nodejs中传递env参数

时间:2018-03-18 11:55:34

标签: javascript node.js npm

我想将@test:registry =值更新为它从package.json调用的myNode.js进程 我试图更新所有的env,但它没有用。 是否可以从childproc.execSync执行此操作?

的package.json

{
    "name": "test1",
    "scripts": {
        "postinstall": "node myNode.js",
        "start": "node node_modules/xx"
    }
}

myNode.js

childproc.execSync('npm install && npm run build', { cwd: '..', shell: true, stdio: 'inherit' , env : {env:process.env}})

我也尝试了

  childproc.execSync('npm install && npm run build', { cwd: '..', shell: true, stdio: 'inherit' , env : {env:{ 'npm_config__test_registry':value}})

然后我得到/ bin / sh:1:npm:not foundchild_process.js:644 throw err; ^

我在创建childproc之前尝试打印process.env然后我看到了我的相关设置但是当我尝试使用npm配置列表在childProc中检查它时,我看到了不同的值

当我尝试

childproc.execSync('npm config set @test:registry:value && npm install && npm run build', { cwd: '..', shell: true, stdio: 'inherit'  })

然后它奏效了。是否有可能使用execSync中的env

1 个答案:

答案 0 :(得分:0)

加入myNode.js

您可以在process.env

中设置环境变量
process.env.NODE_ENV = 'production';