У меня есть код для чтения .env с использованием dotenv, который работает в dev, но после транскомпиляции с помощью Babel значения из process.env не определены. Я создал образец программы, чтобы проиллюстрировать проблему, которая описана ниже.
Если я в проекте рутирую и запускаю
npm run start-w
тогда
console.log(process.env.VAR1)
печатает значение 'var1Val'
Однако, если я это сделаю
npm run build
cd dist
node index.js
значение VAR1 «не определено».
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"
}