Пользовательский загрузчик Webpack создает функцию javascript вместо ожидаемого файла - PullRequest
0 голосов
/ 29 ноября 2018

Я написал собственный загрузчик веб-пакетов, который должен принять html-файл в качестве входных данных, выполнить некоторую обработку и затем вывести файл.Однако, когда я заполняю свой входной файл текстом, он возвращает то, что похоже на пакетный файл javascript, содержащий этот текст, и когда я пытаюсь ввести html-элементы, он не может выполнить синтаксический анализ с сообщением «Возможно, вам потребуется соответствующий загрузчик для обработки этого».тип файла".Я удалил код обработки и попытался просто вернуть исходный код из загрузчика, но это все равно не работает, как ожидалось.

Что-то не так в моей конфигурации?Я не вижу большой разницы между моим загрузчиком и руководствами, на которые я смотрел, такими как https://webpack.js.org/contribute/writing-a-loader/ и https://jaketrent.com/post/how-to-write-webpack-loader/

webpack.config.js

const path = require('path');


module.exports = 
  {
    entry: "./input.html",
    output: {
      filename: "output.html"
    },
    module:
    {
        rules: [
            {
              test: /\.html$/,
              use: [
                {
                  loader: path.resolve('my-loader.js'),
                  options: {}
                }
              ]
            }
          ]
    }
  };

my-loader.js

module.exports = function (source) {
    return source;
};

package.json

{
  "name": "webpack-sample",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "webpack -p",
    "start": "webpack-dev-server"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "handlebars": "^4.0.12",
    "handlebars-loader": "^1.7.0",
    "webpack-cli": "^3.1.2",
    "webpack": "^4.26.1",
    "webpack-dev-server": "^3.1.10"
  }
}

Когда это input.html

Hello

Это генерируется в output.html https://gist.github.com/Baffour/35365f95d934a447a682ea17b7c089b2

С текстом «Hello» в строке 9281

Когда это input.html

<body></body>

Сбой разбора с этой ошибкой:

ERROR in ./input.html 1:0
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
> <body></body>
 @ multi (webpack)-dev-server/client?http://localhost:8082 ./input.html main[1]
i 「wdm」: Failed to compile.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...