javascript - 我如何使用 webpack 来要求包含内联 CSS、JS 和 PNG 的 HTML 文档

标签 javascript html css webpack

我有充满任意 css/html/js/图像文件的模板文件夹。我希望能够通过要求访问它们:

var someHtml = require('./templateFolder/foo.html');

这里,foo.html 包含对 foo.pngfoo.cssfoo.js 的引用>,我希望它们都内联在 html 文档本身中,分别采用 base64 编码、样式标签和脚本标签。这可能吗?如果是这样,webpack 配置会是什么样子?

编辑:进一步的背景

我要这个

<html>
  <head>
      <link rel="stylesheet" type="text/css" href="foo.css">
      <script type="text/javascript" src="bar.js"></script>
  </head>
  <body>
  </body
</html>

转化为:

<html>
  <head>
      <style> Contents of foo.css </style>
      <script> Contents of bar.js</script>
  </head>
  <body>
  </body
</html>

换句话说,我希望将每个 html 文件及其所有资源转换为单个 html 文件。对于 html 文件的外观,我不一定有很多控制权。

最佳答案

看起来您可以为您的用例使用 webpack 的 html-loader: https://github.com/webpack-contrib/html-loader

示例 webpack.config 文件将包括:

module: {
  rules: [{
    test: /\.html$/,
    use: [ {
      loader: 'html-loader',
      options: {
        minimize: true
      }
    }],
  }]
}

然后您应该能够使用 require("html-loader!./file.html");

请求您想要的 html 文件

有关更多信息,请查看上面的链接!


编辑: 例如,要自动内联图像,您可以使用 attrs 参数:

By default every local is required (require('./image.png')). You may need to specify loaders for images in your configuration (recommended file-loader or url-loader).

You can specify which tag-attribute combination should be processed by this loader via the query parameter attrs. Pass an array or a space-separated list of : combinations. (Default: attrs=img:src)


编辑: 要对样式表链接和 js 执行相同操作,您可以使用 https://www.npmjs.com/package/html-inline-source-webpack-plugin

关于javascript - 我如何使用 webpack 来要求包含内联 CSS、JS 和 PNG 的 HTML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46668797/

相关文章:

javascript - 开启jquery?

javascript - 如何将 Facebook 对话框放在自定义模式/html 中

javascript - 使用 onclick 过滤菜单上的选项卡

html - CSS/HTML - 元素未居中

Javascript : global variable passed-by-reference on stored function

javascript - Protractor - 将链接存储在列表中并随机单击

javascript - 创建一个移动栏(在导航栏内)移动到用户悬停的元素?

css - 侧边栏 div 未填充父级的 100%

javascript - 位置 : absolute a div over Flash

css - 如何计算移动设备的宽度和高度