我试图把所有的js文件打包成一个文件[name][hash].js
,CSS和资产也是一样。
我看到所有的编译器都生成了index.html
文件。
虽然我所需要的是将生成的css/JS文件注入到我的rust askama index.html
文件中。但这个想法适用于任何后端视图引擎,没有插件意味着很多痛苦。
下面是我的webpack.config.js
的一个例子,它没有产生我需要的结果,即使html-webpack-plugin
在/dist
中生成了自己的index.html
。
import HtmlWebpackPlugin from 'html-webpack-plugin';
export default {
mode: 'production',
entry: '/assets/main.js',
output: {
filename: '[name].[contenthash].js',
},
module: {
rules: [
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
],
},
plugins: [new HtmlWebpackPlugin({ template: '/templates/index.html' })],
};
字符串
这是我的templates/index.html
,它是一个后端文件
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}
{{ title }}{% endblock %}
</title>
{% block head %}{% endblock %}
</head>
<body>
<div id="app"></div>
<div id="content">
{% block content %}
<p>Dashboard</p>
{% endblock %}
</div>
</body>
</html>
型
我搜索了rollup和vite,但这个想法很难,我看到所有这些插件都以自己的方式工作,不容易配置。
1条答案
按热度按时间nkkqxpd91#
您可以使用现代的“html-plugin-webpack-plugin”。该插件解析任何HTML模板中的所有图像,字体,样式,脚本等源文件。解析的引用可以替换为它们的输出文件名或注入HTML模板。
例如,直接在HTML模板中添加样式和脚本源文件:
字符串
型
如果您将保留原始模板内容,并且只保留内联JS/CSS/图像,则使用
preprocessor: false
插件选项禁用渲染。如果你要将任何模板渲染成HTML,你可以使用一个支持的模板引擎“开箱即用”:Eta,EJS,Handlebars,Nunjucks,LiquidJS。
处理后的模板看起来像:
型
请参阅:
P.S.你可以用你的基本项目文件创建一个小的仓库,我可以帮助你配置它。