我认为只有在某些资源被import或require d 并且资源与这样的加载器匹配时才会调用加载器。
但是在下面的代码中,没有在任何地方导入 html 文件,但是由于 html 中的下划线模板内容,仍然需要 html-loader 来使编译通过。
所以我有以下问题:
- html-loader 什么时候开始播放?在生成捆绑包之后还是之前?
- 为什么 webpack 会调用 html-loader?因为插件中的模板设置?
插件是否使用加载器的输出?但是输出只是一个字符串,它怎么能有所作为呢?
//webpack.config.js const webpack = require('webpack'); const path = require('path'); const htmlPlugin = require('html-webpack-plugin'); module.exports = { entry: { a: './a.js' }, output: { filename: '[name].[chunkhash].js', chunkFilename: '[name].[chunkhash].js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.html$/, loader: "html-loader" } ] }, plugins: [ new htmlPlugin({ template:path.resolve(__dirname,'index.html') }) ] }; //index.html <!DOCTYPE html> <html> <head> <title></title> </head> <body> <script id="item-template" type="text/template"> <label><%= title %></label> </script> </body> </html>