首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从npm脚本中导出环境变量?

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

Stack Overflow用户
提问于 2015-11-27 06:23:24
回答 2查看 4.2K关注 0票数 11

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

但是,如果我需要跨多个npm run脚本使用声明的变量,则会导致每次都重复指定变量的值,如下面的代码示例所示:

代码语言:javascript
复制
"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导出一个环境变量,这样就可以实现如下所示:

代码语言:javascript
复制
"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
}

然后我们就可以这样做:

代码语言:javascript
复制
npm run set-env
npm run lint
npm run start
EN

回答 2

Stack Overflow用户

发布于 2018-11-05 19:37:02

如果你使用yarn作为你的包管理器,尝试这个命令很容易找到如何实现它

yarn run env

票数 1
EN

Stack Overflow用户

发布于 2016-05-28 04:46:07

您可以通过使用不同的package.json特性npm-config来实现此行为。

示例

以下是您的代码的改编。

代码语言:javascript
复制
{
    "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"
    }
}

官方文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33947802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档