首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Vite包含HTML部分?

如何使用Vite包含HTML部分?
EN

Stack Overflow用户
提问于 2022-01-23 01:44:01
回答 2查看 3.6K关注 0票数 5

是否可以使用Vite (vanilla)包括共享HTML的片段?我正在寻找一种不用通过JS注入就可以预先录制HTML的方法。

类似于:

代码语言:javascript
复制
<html>
  <head>
    { include 'meta-tags' }
  </head>
  <body> 
    { include 'nav' }
    <h1>Hello World</h1>
  <body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-31 00:04:29

vite-plugin-handlebars是我一直在寻找的解决方案。使用此包设置部分非常容易:

设置:

代码语言:javascript
复制
// vite.config.js
import { resolve } from 'path';
import handlebars from 'vite-plugin-handlebars';

export default {
  plugins: [
    handlebars({
      partialDirectory: resolve(__dirname, 'partials'),
    }),
  ],
};

要包含部分内容的文件:

代码语言:javascript
复制
<!-- index.html -->
{{> header }}

<h1>The Main Page</h1>

呈现的产出:

代码语言:javascript
复制
<header><a href="/">My Website</a></header>

<h1>The Main Page</h1>
票数 8
EN

Stack Overflow用户

发布于 2022-01-29 06:15:42

您可以使用在vite-plugin-html中启用EJS模板index.html

代码语言:javascript
复制
// vite.config.js
import { defineConfig } from 'vite'
import { createHtmlPlugin } from 'vite-plugin-html'

export default defineConfig({
  plugins: [
    createHtmlPlugin({
      entry: 'main.js',

      /**
       * Data that needs to be injected into the index.html ejs template
       */
      inject: {
        data: {
          metaTags: `<meta charset="UTF-8" />
          <meta name="viewport" content="width=device-width, initial-scale=1.0" />`,
          nav: `<nav>
            <a href="https://google.com">Google</a> | 
            <a href="https://apple.com">Apple</a>
          </nav>`,
        },
      },
    }),
  ],
})
代码语言:javascript
复制
<!-- index.html -->
<html>
  <head>
    <%- metaTags %>
  </head>
  <body>
    <%- nav %>
    <h1>Hello World</h1>
  <body>
</html>

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70818545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档