Dotenv-webpack в производстве? - PullRequest
       26

Dotenv-webpack в производстве?

0 голосов
/ 19 января 2019

Я пытаюсь использовать плагин dotenv-webpack.Это прекрасно работает на местном уровне.Но происходит сбой при развертывании в Heroku.

Я следовал советам в соответствии с этой проблемой Git, но все еще возникают проблемы: https://github.com/mrsteele/dotenv-webpack/issues/121

Моя конфигурация веб-пакета выглядит следующим образом:

const path = require('path');
const Dotenv = require('dotenv-webpack');

module.exports = {
  context: path.join(__dirname, '/src'),

  entry: {
    javascript: './js/index'
  },

output: {
  filename: 'bundle.js',
  path: path.join(__dirname, '/dist'),
},

resolve: {
  alias: {
    react: path.join(__dirname, 'node_modules', 'react')
  },
  extensions: ['.js', '.jsx'],
},

module: {
  rules: [
  {
    test: /\.jsx?$/,
    exclude: /node_modules/,
    loaders: ['babel-loader'],
  },
  {
    test: /\.html$/,
    loader: 'file?name=[name].[ext]',
  },
 ],
},
plugins: [
  new Dotenv({
    path: path.resolve(__dirname,'.env')
  }),
 ]
};

Я ожидаю, что там, где плагин dotenv написан, как указано выше, он разрешит мой файл .env (который находится в корне проекта, вместе с webpack.config) после сборки, давая мнедоступ проекта к env vars.Вместо этого env vars не определены в Heroku.У меня есть набор env в Heroku.Ключ установлен на что-то вроде SECRET_KEY.Значение установлено на что-то вроде 123456. Может кто-нибудь дать мне некоторое представление?Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 июля 2019

Я думаю, что вместо этого вы можете установить собственный плагин для веб-пакетов.

const path = require('path');
const webpack = require('webpack')
module.exports = {
  entry: './src/index.js',
  mode: 'production',
  output: {
    filename: 'main.js',
    path: path.resolve(__dirname, 'dist'),
  },
  node: {
    fs: 'empty'
  },
  plugins: [
    new webpack.DefinePlugin({
      'process.env': {
         'API_KEY': JSON.stringify(process.env.API_KEY)
      }
    })
  ]
};

как эти примеры в вашем webpack.prod.js

0 голосов
/ 19 января 2019

Исходя из документации из dotenv , вы не используете метод config , который читает и анализирует содержимое из файла .env.

Кстати, поскольку вы имеете дело с веб-пакетом, я бы предложил использовать пакет dotenv-webpack . Данная документация показывает пример базовой конфигурации вместе с некоторыми другими возможными аргументами.

Если вас интересуют другие способы настройки переменных среды, в частности, в React, я рекомендую эту подробную статью.

...