Мое приложение React не запускается приложением create-реакции-приложением, но имеет пользовательскую конфигурацию Webpack.
Я установил dotenv
/ dotenv-expand
/, а также dotenv-webpack
.
У меня .env
/ .env.development
файлов с переменной API_URL
.
В моем файле url
const { API_URL } = process.env
и использование этого API_URL
для извлечения данных .
Но в этом файле, когда я console.log(process.env)
, он пуст.
Я также пытался обновить webpack.config.js
файл с
const Dotenv = require('dotenv-webpack');
и
new Dotenv()
в массиве плагинов.
Но все равно не работает.
Я также пытался использовать имя переменной REACT_APP_API_URL
, но это был тот же результат.
Может ли кто-нибудь помочь мне установить env vars?
Спасибо.
webpack.config. js
const webpack = require('webpack')
const Dotenv = require('dotenv-webpack');
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const webpackMerge = require('webpack-merge')
const modeConfig = env => require(`./build-utils/webpack.${env}`)(env)
const presetConfig = require('./build-utils/loadPresets')
module.exports = ({ mode, presets } = { mode: 'production', presets: [] }) => {
console.log('mode', mode, 'presets', presets)
return webpackMerge(
{
mode,
module: {
rules: [
{
test: /\.(png|jpe?g|svg)$/,
use: {
loader: 'file-loader',
options: {
name: 'assets/[name].[ext]',
}
},
},
],
},
node: {
fs: 'empty'
},
resolve: {
extensions: ['.js', '.json'],
},
output: {
filename: 'bundle.js',
chunkFilename: '[name].lazy-chunk.js',
path: path.resolve(__dirname, 'build'),
publicPath: mode === 'development' ? '/' : './'
},
devServer: {
historyApiFallback: true
},
plugins: [
new HtmlWebpackPlugin({
template: './build-utils/template.html'
}),
new webpack.ProgressPlugin(),
new Dotenv()
]
},
modeConfig(mode),
presetConfig({ mode, presets })
)
}