Невозможно использовать экспортированные классы в конфигурации webpack

#javascript #webpack

#javascript #webpack

Вопрос:

Мне нужно иметь несколько конфигураций webpack@5 . Я хотел создать WebpackBuilder класс, который будет отвечать за создание этой конфигурации webpack.

Итак, я создал этот файл:

 export default class WebpackBuilder {
    test() {
        console.log('Test');
    }
}

  

Когда я импортирую этот файл с помощью const WebpackBuilder = require('./webpack.builder'); , я получаю ошибки:

 [webpack-cli] C:stronywwwpolskieszlaki_newstronywebpack.builder.js:3
export default class WebpackBuilder {
^^^^^^

SyntaxError: Unexpected token 'export'


  

При использовании import WebpackBuilder from './webpack.builder';

 [webpack-cli] C:stronywwwpolskieszlaki_newstronywebpack.blog.config.js:2
import WebpackBuilder from './webpack.builder';
^^^^^^

SyntaxError: Cannot use import statement outside a module

  

Моя команда webpack webpack --mode=production --config webpack.blog.config.js

Ответ №1:

Похоже, вы импортировали esm модуль в свой конфигурационный файл, который написан в cjs стиле.

Вы должны превратить свой esm модуль в cjs :

 class WebpackBuilder {
    test() {
        console.log('Test');
    }
}


module.exports = WebpackBuilder;
  

ПРИМЕЧАНИЕ: вы также можете узнать больше языков для записи файла конфигурации здесь: https://webpack.js.org/configuration/configuration-languages /