@Delawere

Как правильно настроить переменные окружения для Netlify?

Всем привет, мне не удается настроить переменные окружение запуске приложения на 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: [],
});
  • Вопрос задан
  • 21 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы