如何从npm脚本导出envvariables?

我知道我们可以声明envvariables在npm run命令运行的脚本中使用,像这样: TEMP_VARIABLE=value node app.js

但是,如果我需要在多个npm run脚本中使用声明的variables,那么每次都会重复指定variables的值,如下面的代码示例所示:

 "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导出一个envvariables来允许如下所示:

 "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 

您可以通过使用不同的package.jsonfunctionnpm-config来实现该行为。

以下是您的代码的适应。

 { "config": { "srcDir": "src" }, "scripts": { "start": "node ${npm_package_config_srcDir}/app.js", "lint": "jshint ${npm_package_config_srcDir}/*.js", "coverage": "istanbul cover -d ./lcov -i ${npm_package_config_srcDir}/*.js" } } 

正式文件