javascript - 使用 Webpack 构建静态站点生成器

标签 javascript webpack webpack-dev-server html-webpack-plugin static-site

我想使用 javascript 模板文字生成 html 内容,并在 Webpack 编译时输出静态 html 文件。我还需要一个具有热模块替换功能的开发服务器,可以处理 html、css 和 js 文件。

我在 HtmlWebpackPlugin 中需要 page1.js选项:

new HtmlWebpackPlugin({
  template: './html-template.ejs',
  appMount: require('./src/views/page1')
})

然后我使用自定义 ejs 模板 html-template.ejs 导入生成的 html 内容:

<% if (htmlWebpackPlugin.options.appMount) { %>
<%= htmlWebpackPlugin.options.appMount %>
<% } %>

page1.js 看起来像这样:

const h1 = (text) => `<h1>${text}</h1>`;

module.exports = h1('Hello World');

请注意,page1.js 设置为入口点。唯一的入口点是 src/index.js(里面只有一个 console.log 语句)。

当我运行 webpack 时,一切正常,dist/index.htmldist/main.js 一起生成。 p>

如果我运行 webpack-dev-server 并尝试编辑 page1.js,浏览器会重新加载,但 html 内容不会更新。

关于如何使 webpack-dev-server 和热模块替换适用于 View 文件的任何想法?或者您有任何其他更好的解决方案来创建简单的静态站点生成器吗?

最佳答案

您可以在 html 中执行此操作:

<%=require('./views/page1.js')%>

关于javascript - 使用 Webpack 构建静态站点生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51577683/

相关文章:

webpack - 如何运行 Webpack Dev Server --https --hot --inline

javascript - GridView OnSelectedIndexChanged 调用 JavaScript 函数

Webpack 5 HMR 问题 - 无法读取未定义的属性 'updatedChunkIds'

javascript - knockout : nested dependentObservable - not functioning

javascript - 哪个 webpack devtool 适合 chrome 应用程序?

javascript - magnificPopup 无法与 webpack 一起使用

angular - 如何在 Angular 4.x 应用程序中使用 Bower 管理前端依赖项

reactjs - ReactJS 中生产和开发构建的区别

javascript - 更改 innerHTML onmousemove 事件

javascript - 向每个列表元素添加一个按钮元素