Всем привет, мне не удается настроить переменные окружение запуске приложения на Netlify. Я добавил все переменные в Site Settings / Environment, но либо этого не достаточно, либо я что то неправильно настроил. Локально все работает, в dev и prod режимах.
PS До этого запускал проект на create-react-app, и там все работало из коробки, поэтому есть подозрение что дело в моем веб пак конфиге.
package.json
"scripts": {
"build": "yarn run clean-dist && webpack -p --config=webpack.prod.js",
"clean-dist": "rimraf dist/*",
"lint": "eslint './src/**/*.{js,ts,tsx}' --quiet",
"start": "yarn run start-dev",
"start-dev": "webpack-dev-server --config=webpack.dev.js --open",
"start-prod": "yarn run build && node express.js",
"test": "jest --coverage --watchAll --config=configs/jest.json"
},
webpack.dev
const {resolve} = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const Dotenv = require('dotenv-webpack');
module.exports = {
output: {
path: resolve(__dirname, 'dist'),
filename: 'index_bundle.js',
publicPath: '/'
},
resolve: {
plugins: [new TsconfigPathsPlugin({ configFile: "tsconfig.json" })],
extensions: ['.ts', '.tsx', '.js', '.jsx'],
},
context: resolve(__dirname, './src'),
module: {
rules: [
{
test: /\.js$/,
use: ['babel-loader', 'source-map-loader'],
exclude: /node_modules/,
},
{
test: /\.tsx?$/,
loader: "ts-loader"
},
{
test: /\.css$/,
use: ['style-loader', { loader: 'css-loader', options: { importLoaders: 1, modules: true, } }],
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
loaders: [
'file-loader?hash=sha512&digest=hex&name=img/[hash].[ext]',
'image-webpack-loader?bypassOnDebug&optipng.optimizationLevel=7&gifsicle.interlaced=false',
],
},
],
},
plugins: [
new HtmlWebpackPlugin({template: 'index.html.ejs',}),
new Dotenv(),
],
externals: {
'react': 'React',
'react-dom': 'ReactDOM',
},
performance: {
hints: false,
},
node: {
fs: 'empty',
}
};
webpack.prod
const merge = require('webpack-merge');
const {resolve} = require('path');
const commonConfig = require('./webpack.common');
module.exports = merge(commonConfig, {
mode: 'production',
entry: './index.tsx',
output: {
filename: 'js/bundle.[hash].min.js',
path: resolve(__dirname, './dist'),
publicPath: '/',
},
devtool: 'source-map',
plugins: [],
});