dotenv не работает после транскомпиляции с помощью Babel

У меня есть код для чтения .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"
}


person klequis    schedule 15.04.2019    source источник


Ответы (1)


Если в вашем каталоге сборки нет файла .env, попробуйте его создать. Думаю, поэтому переменная окружения не определена.

person Olalekan    schedule 30.07.2019