我使用在开发人员中使用的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"
}
答案 0 :(得分:0)
如果您的构建目录中没有.env文件,请尝试创建一个。我想这就是为什么环境变量未定义的原因。