cod*_*eto 5 env environment-variables node.js npm
我知道我们可以声明由npm run命令运行的脚本内部使用的env变量,如下所示:
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"
Run Code Online (Sandbox Code Playgroud)
有没有一种方法,我们可以npm run-script用来导出一个env变量,以允许如下所示:
"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
}
Run Code Online (Sandbox Code Playgroud)
然后我们可以这样做:
npm run set-env
npm run lint
npm run start
Run Code Online (Sandbox Code Playgroud)
您可以通过使用不同的 package.json 功能 来实现该行为npm-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"
}
}
Run Code Online (Sandbox Code Playgroud)
官方文档
| 归档时间: |
|
| 查看次数: |
2295 次 |
| 最近记录: |