Webpack:在另一个部分中包含 html 部分?
Webpack: include html partial inside another partial?
有没有办法使用 webpack 将 html 部分包含在另一个部分中?
我正在使用 html-loader 来执行此操作:
index.html
<%= require('html-loader!./partials/_header.html') %>
但是当我尝试在 _header.html 中包含另一个部分时,它无法渲染它。
这不起作用:
_header.html
<%= require('html-loader!./partials/_nav.html') %>
使用 html-loader
和 interpolate
选项。
https://github.com/webpack-contrib/html-loader#interpolation
{ test: /\.(html)$/,
include: path.join(__dirname, 'src/views'),
use: {
loader: 'html-loader',
options: {
interpolate: true
}
}
}
然后在 html 页面中,您可以导入部分 html 和 javascript 变量。
<!-- Importing top <head> section -->
${require('./partials/top.html')}
<title>Home</title>
</head>
<body>
<!-- Importing navbar -->
${require('./partials/nav.html')}
<!-- Importing variable from javascript file -->
<h1>${require('../js/html-variables.js').hello}</h1>
<!-- Importing footer -->
${require('./partials/footer.html')}
</body>
</html>
html-variables.js
看起来像这样:
const hello = 'Hello!';
const bye = 'Bye!';
export {hello, bye}
您也可以使用 ${require('path/to/your/partial.html')
.
以相同的方式将分音包含在另一个分音中
唯一不足的是不能像这样从HtmlWebpackPlugin
导入其他变量<%= htmlWebpackPlugin.options.title %>
(至少我找不到导入的方法),把标题写在您的 html 或根据需要使用单独的 javascript 文件来处理变量。
我结合了一点,找到了解决方案。
index.html
<%= require('html-loader?root=.&minimize=true&interpolate!./partials/_header.html') %>
然后在_header.html
${require('html-loader?root=.!../partials/_nav.html')}
有没有办法使用 webpack 将 html 部分包含在另一个部分中? 我正在使用 html-loader 来执行此操作:
index.html
<%= require('html-loader!./partials/_header.html') %>
但是当我尝试在 _header.html 中包含另一个部分时,它无法渲染它。
这不起作用:
_header.html
<%= require('html-loader!./partials/_nav.html') %>
使用 html-loader
和 interpolate
选项。
https://github.com/webpack-contrib/html-loader#interpolation
{ test: /\.(html)$/,
include: path.join(__dirname, 'src/views'),
use: {
loader: 'html-loader',
options: {
interpolate: true
}
}
}
然后在 html 页面中,您可以导入部分 html 和 javascript 变量。
<!-- Importing top <head> section -->
${require('./partials/top.html')}
<title>Home</title>
</head>
<body>
<!-- Importing navbar -->
${require('./partials/nav.html')}
<!-- Importing variable from javascript file -->
<h1>${require('../js/html-variables.js').hello}</h1>
<!-- Importing footer -->
${require('./partials/footer.html')}
</body>
</html>
html-variables.js
看起来像这样:
const hello = 'Hello!';
const bye = 'Bye!';
export {hello, bye}
您也可以使用 ${require('path/to/your/partial.html')
.
唯一不足的是不能像这样从HtmlWebpackPlugin
导入其他变量<%= htmlWebpackPlugin.options.title %>
(至少我找不到导入的方法),把标题写在您的 html 或根据需要使用单独的 javascript 文件来处理变量。
我结合了一点,找到了解决方案。
index.html
<%= require('html-loader?root=.&minimize=true&interpolate!./partials/_header.html') %>
然后在_header.html
${require('html-loader?root=.!../partials/_nav.html')}