使用Babel反编译后dotenv无法正常工作

时间:2019-04-15 13:24:25

标签: babeljs dotenv

我使用在开发人员中使用的dotenv读取.env代码,但是在与Babel进行反编译后,process.env中的值未定义。我创建了一个示例程序来说明下面的问题。

如果我在projectRoot中并运行

npm run start-w

然后

console.log(process.env.VAR1)

打印值'var1Val'

但是,如果我愿意

npm run build
cd dist
node index.js

VAR1的值是'undefined'。

index.js

import 'dotenv/config'

console.log('VAR1', process.env.VAR1)

.env

VAR1=var1val
VAR2=var2val
VAR3=var3val

.babelrc

{
  "presets": ["@babel/preset-env"],
  "plugins": [
    "@babel/plugin-transform-runtime",
  ]
}

package.json

{
  "name": "dotenv.node-babel",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "@babel/runtime": "^7.4.3",
    "dotenv": "^7.0.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.4.3",
    "@babel/core": "^7.4.3",
    "@babel/node": "^7.2.2",
    "@babel/plugin-transform-runtime": "^7.4.3",
    "@babel/preset-env": "^7.4.3",
    "@types/dotenv": "^6.1.1",
    "nodemon": "^1.18.11",
    "rimraf": "^2.6.3"
  },
  "scripts": {
    "clean-dist": "rimraf dist",
    "build": "npm run-script clean-dist && babel . -d dist --ignore node_modules",
    "start": "babel-node index.js",
    "start-w": "NODE_ENV=devLocal nodemon --exec babel-node index.js"
  },
  "author": "",
  "license": "ISC"
}

1 个答案:

答案 0 :(得分:0)

如果您的构建目录中没有.env文件,请尝试创建一个。我想这就是为什么环境变量未定义的原因。