如何从npm脚本中导出环境变量?

11

我知道我们可以声明环境变量,以便在通过npm run命令运行的脚本中使用,像这样:

TEMP_VARIABLE=value node app.js

但是,如果我需要在多个npm run脚本中使用已声明的变量,则每次都需要指定变量的值,这将导致重复劳动。例如:

"start": "SRC_DIR=src node src/app.js",
"lint": "SRC_DIR=src jshint src/*.js",
"coverage": "SRC_DIR=src istanbul cover --dir outputDir -i src/*.js"
有没有一种方法可以使用npm run-script导出一个环境变量,以允许像下面这样的操作:
"scripts": {
     "set-env": "export SRC_DIR=src",    # should export the env var to be used later
     "start": "node ${SRC_DIR}/app.js",                      # use the env var set earlier.
     "lint": "jshint ${SRC_DIR}/*.js"                          # use the same env var again
     "coverage": "istanbul cover -d ./lcov -i ${SRC_DIR}/*.js"      # use again
}

那么我们只需要做:

npm run set-env
npm run lint
npm run start

为什么不使用 config 对象:https://docs.npmjs.com/files/package.json#config? - stdob--
我想做同样的事情,但是我不想设置一个静态值,我想更新$PATH环境变量的值。在这种情况下,config无法工作。 - Jo Sprague
2个回答

1
如果您使用yarn作为包管理器,请尝试这个命令。很容易找到如何实现它。 yarn run env

0

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