HtmlWebpackPlugin 之前的自定义加载程序导致 "Unexpected token" 错误
Custom loader before HtmlWebpackPlugin causes "Unexpected token" error
我正在制作一个自定义加载程序,它将采用为 HtmlWebpackPlugin 指定的 HTML 模板,执行一些更改,然后将其传递。
首先,我制作了一个加载程序来回应给定的内容:
//loader.js
module.exports = function(fileContent){
return fileContent
}
但这会导致以下错误:
Html Webpack Plugin:
Error: Child compilation failed:
Module parse failed: Unexpected token (1:0)
File was processed with these loaders:
* ./node_modules/html-webpack-plugin/lib/loader.js
* ./loader.js
HTML文件只是为了测试,看起来像这样:
//index.html
<!DOCTYPE html>
<html>
<body>
</body>
</html>
我不确定为什么会发生这样的错误。我查看了 HtmlWebpackPlugin 的源代码并尝试将它接收到的内容记录到控制台,但它与我在 loader.js
.
中 return 完全相同
我试着给它一个纯字符串看看会发生什么,像这样:
//loader.js
module.exports = function(fileContent){
return "test"
}
但它告诉我:
HtmlWebpackPlugin
ReferenceError: test is not defined
- loader.js:1 eval
//...and so on
嗯?所以我猜它正在尝试评估我给它的东西?我不确定发生了什么。感谢任何帮助。
这是 HtmlWebpackPlugin 的loader code:
我发现,就我而言,更好的方法是从文件中将模板作为 Javascript 模块加载。
//webpack.config.js
new HtmlWebpackPlugin({
template: "./src/customLoader.js",
filename: name + ".html",
chunks: [name],
})
//customLoader.js
module.exports = (htmlFile) => {
//...do stuff
return modifiedHtmlFile;
};
我正在制作一个自定义加载程序,它将采用为 HtmlWebpackPlugin 指定的 HTML 模板,执行一些更改,然后将其传递。
首先,我制作了一个加载程序来回应给定的内容:
//loader.js
module.exports = function(fileContent){
return fileContent
}
但这会导致以下错误:
Html Webpack Plugin:
Error: Child compilation failed:
Module parse failed: Unexpected token (1:0)
File was processed with these loaders:
* ./node_modules/html-webpack-plugin/lib/loader.js
* ./loader.js
HTML文件只是为了测试,看起来像这样:
//index.html
<!DOCTYPE html>
<html>
<body>
</body>
</html>
我不确定为什么会发生这样的错误。我查看了 HtmlWebpackPlugin 的源代码并尝试将它接收到的内容记录到控制台,但它与我在 loader.js
.
我试着给它一个纯字符串看看会发生什么,像这样:
//loader.js
module.exports = function(fileContent){
return "test"
}
但它告诉我:
HtmlWebpackPlugin
ReferenceError: test is not defined
- loader.js:1 eval
//...and so on
嗯?所以我猜它正在尝试评估我给它的东西?我不确定发生了什么。感谢任何帮助。
这是 HtmlWebpackPlugin 的loader code:
我发现,就我而言,更好的方法是从文件中将模板作为 Javascript 模块加载。
//webpack.config.js
new HtmlWebpackPlugin({
template: "./src/customLoader.js",
filename: name + ".html",
chunks: [name],
})
//customLoader.js
module.exports = (htmlFile) => {
//...do stuff
return modifiedHtmlFile;
};