首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用html-webpack-plugin将对象传递给ejs加载程序。

使用html-webpack-plugin将对象传递给ejs加载程序。
EN

Stack Overflow用户
提问于 2016-10-04 16:59:08
回答 3查看 4.1K关注 0票数 6

我想我到处都找过了,但我空手而归。我一直在使用html-webpack-plugin从我的源代码加载一个index.html文件,但是我的客户端附带了一些本地化,我认为如果能够动态地添加它们,那就太好了。

因此,我试图切换到使用html-webpack-plugin的模板引擎,即ejs,但我遇到了重大问题!

我想要html-webpack-plugin呈现和.ejs文件,我需要给这个.ejs文件一个巨大的本地化对象。

我想要这样的东西:

代码语言:javascript
复制
<h1><%= header.title %></h1>

来自本地化的.json-file,如下所示:

代码语言:javascript
复制
{
  "header": {
    "title": "My Clients Super Awesome Website"
  }
}

我试过使用两种不同的ejs webpack加载器,我根本不知道如何将一个简单的对象传递给ejs加载程序,这样我就可以在ejs文件中使用它了。

希望你们有一些答案:I‘我提前感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-27 06:15:47

在index.ejs中

代码语言:javascript
复制
<%= htmlWebpackPlugin.options.header.title %>

在webpack.config.js中

代码语言:javascript
复制
module: {
    rules: [
    {
        test: /.ejs$/,
        loader: 'ejs-loader'
    }
]}

代码语言:javascript
复制
plugins: [
new HtmlWebpackPlugin({
    header: {title: 'test'},
    template: './index.ejs',
})]

注意。不要在options: { variable: 'data or xxx' }之后使用ejs-loader,如果指定了变量,htmlWebpackPlugin将是未知的。

因此,您需要使用html- webpack -插件在webpack配置。并将该对象放入HtmlWebpackPlugin参数中。

票数 4
EN

Stack Overflow用户

发布于 2016-10-25 14:26:38

我在找同样的东西。似乎模板可以访问作为htmlWebpackPlugin.options对象传递给html-webpack-plugin的选项对象。

包括例如。标题中,您需要将它从模板中引用为htmlWebpackPlugin.options.title。我不知道是否有任何方法以更多插件无关的方式传递值,所以您只需在模板文件中引用title作为title

票数 1
EN

Stack Overflow用户

发布于 2019-02-04 22:26:21

容易插入任何参数。

代码语言:javascript
复制
// webpack.config.js

    ...
    new HtmlWebpackPlugin({
      filename: 'index.html',
      template: 'template/index.ejs',
      templateParameters: {
        'title': 'My Clients Super Awesome Website',
        'episode: '2'
      }
    }),
    ...
代码语言:javascript
复制
<!-- index.ejs -->

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

https://stackoverflow.com/questions/39857909

复制
相关文章

相似问题

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