Конфигурация веб-пакета для хамла

Так что я только начал использовать веб-пакет для своих проектов. Я использую webpack, чтобы попытаться скомпилировать мои шаблоны haml в jsx, чтобы реагировать на элементы. Для этого я использую загрузчики haml-jsx и babel-loader.

Итак, проблема, с которой я столкнулся сейчас, возникает, когда веб-пакет загружает шаблон.haml. Я продолжаю получать эту ошибку: "Ошибка синтаксического анализа модуля: неожиданный токен. Вам может понадобиться соответствующий загрузчик для обработки этого типа файлов". Я знаю, что мешает загрузчику haml-jsx работать правильно, но, как я уже сказал, я новичок в вебпаке, так что идите, если это мой конфигурационный файл вебпака или что-то вне этого. Вот почему я иду к вам, ребята!

Ниже приведен мой конфигурационный файл webpack:

const path = require('path');
module.exports = {
    entry:path.resolve(__dirname,"index.js"),
    module:{
        rules:[
            {
                test:/\.haml$/,
                use:[
                    {
                        loader:"babel-loader",
                        options:{
                            presets: ['@babel/preset-env'],
                            plugins: [require('@babel/plugin-syntax-jsx')]
                        }
                    },
                    {
                        loader:"haml-jsx-loader"
                    }
                ]   
            },
        ]
    },
    output: {
        filename:"bundle.js",
        path: path.resolve(__dirname,"/distro")
    },
};

также моя структура каталогов выглядит так

webpack
-sass(dir)
-distro(dir)
-haml(dir)
  -tamplate.haml
-node_modules
-webpack.config.js
-babel.config.js
-index.js
-package.json

любые предложения помогут! Спасибо!

1 ответ

Проблема не имеет ничего общего с самим хамлом. Загрузчики хороши, за исключением того факта, что один из них не может проанализировать - и, следовательно, загрузить - данный файл.

Посмотрите на конфигурацию вашего babel-loader, тот факт, что вы используете React, является ключом к вашей проблеме. @babel/plugin-syntax-jsx это не то, что вы ищете. Вы должны использовать @babel/plugin-transform-react-jsx,

Честно говоря, документация по всем плагинам babel на самом деле довольно плохая.

Другие вопросы по тегам