Настройка Webpack для проекта React

1
7

Я настраиваю Webpack для своего проекта React с помощью npm, но столкнулся с ошибкой, которую не могу устранить. Надеюсь, кто-нибудь здесь сможет мне помочь.

Когда я пытаюсь запустить команду npm run build, я сталкиваюсь со следующей ошибкой:

Вот моя текущая конфигурация Webpack (webpack.config.js):

Я пытаюсь собрать свое приложение React с помощью Webpack. Я настроил конфигурацию Webpack для обработки файлов JavaScript и CSS и использую Babel для транспиляции современного синтаксиса JavaScript и React JSX. Однако я постоянно сталкиваюсь с ошибкой в ​​процессе сборки.

assets by status 364 bytes [cached] 1 asset
./src/index.js 224 bytes [built] [code generated] [1 error]

ERROR in ./src/index.js 7:12
Module parse failed: Unexpected token (7:12)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loadersers
| const rootElement = document.getElementById('root');
| const root = createRoot(rootElement);
> root.render(<App />);
|

webpack 5.93.0 compiled with 1 error in 357 ms
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

const isDevelopment = process.env.NODE_ENV !== 'production';

module.exports = {
    mode: isDevelopment ? 'development' : 'production',
    devtool: isDevelopment ? 'eval-source-map' : 'source-map',
    entry: path.resolve(__dirname, 'src', 'index.js'),
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'bundle.js',
    },
    resolve: {
        extensions: ['.js', '.jsx', 'json'],
    },
    devServer: {
        contentBase: path.resolve(__dirname, 'dist'),
        compress: true,
        port: 8080,
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: path.resolve(__dirname, 'public', 'index.html'),
        }),
    ],
    module: {
        rules: [
            {
                test: /\.(js|jsx)$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                },
            },
            {
                test: /\.(css)$/,
                exclude: /node_modules/,
                use: ['style-loader', 'css-loader'],
            },
        ],
    },
};
{
  "name": "01-github-explorer",
  "version": "1.0.0",
  "main": "src/index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "cross-env NODE_ENV=production webpack",
    "dev": "webpack server"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "",
  "dependencies": {
    "@babel/preset-react": "^7.24.7",
    "react": "^18.3.1"
  },
  "devDependencies": {
    "@babel/cli": "^7.24.8",
    "@babel/core": "^7.25.2",
    "@babel/polyfill": "^7.12.1",
    "@babel/preset-env": "^7.25.3",
    "babel-loader": "^9.1.3",
    "babel-polyfill": "^6.26.0",
    "cross-env": "^7.0.3",
    "css-loader": "^7.1.2",
    "file-loader": "^6.2.0",
    "html-webpack-plugin": "^5.6.0",
    "style-loader": "^4.0.0",
    "url-loader": "^4.1.1",
    "webpack": "^5.93.0",
    "webpack-cli": "^5.1.4",
    "webpack-dev-server": "^5.0.4"
  }
}
module.exports = {
  presets: [
    '@babel/preset-env',
    '@babel/preset-react',
  ],
};
Фадей
Вопрос задан24 апреля 2024 г.

1 Ответ

2
Антонин
Ответ получен12 сентября 2024 г.

Ваш ответ

Загрузить файл.