使用html-webpack-plugin将一个对象传递给ejs加载器
Passing an object to an ejs loader, using html-webpack-plugin
我相信我到处都找遍了,但还是空手而归。我一直在使用html-webpack-plugin
从我的源中加载单个index.html
文件,但我的客户端已经带有一些本地化,我认为如果我可以动态添加它们将会很棒。
所以我试图切换到使用一个模板引擎与html-webpack-plugin
,即ejs
,但我有重大问题!
我想要html-webpack-plugin
渲染和.ejs
文件,我需要给.ejs
文件一个巨大的本地化对象。
我想要这样的东西:
<h1><%= header.title %></h1>
来自这样的本地化.json
文件:
{
"header": {
"title": "My Clients Super Awesome Website"
}
}
我试过使用两个不同的ejs webpack加载器,我根本不知道如何传递一个简单的对象到ejs加载器,我可以在我的ejs文件中使用。
in index.ejs
<%= htmlWebpackPlugin.options.header.title %>
在webpack.config.js module: {
rules: [
{
test: /.ejs$/,
loader: 'ejs-loader'
}
]}
和
plugins: [
new HtmlWebpackPlugin({
header: {title: 'test'},
template: './index.ejs',
})]
通知。在ejs-loader
之后不要使用options: { variable: 'data or xxx' }
,如果指定了变量,htmlWebpackPlugin
将是未知的。
所以你需要在webpack配置中使用html-webpack-plugin。并将该对象放入HtmlWebpackPlugin的参数中。
我也在寻找同样的东西。似乎模板可以访问作为htmlWebpackPlugin.options
对象传递给html-webpack-plugin的选项对象。
包括;您需要从模板中将其引用为htmlWebpackPlugin.options.title
。我不知道是否有任何方法可以以插件无关的方式传递值,所以你可以在模板文件中引用title
作为title
。
可轻松插入任何参数
// webpack.config.js
...
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'template/index.ejs',
templateParameters: {
'title': 'My Clients Super Awesome Website',
'episode: '2'
}
}),
...
<!-- index.ejs -->
<%= title %>
<%= episode %>
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何使该数据在所有元素中加载
- Chrome扩展没有't在重新加载之前考虑期权价值
- 将Parse.File url加载到EJS模板中
- 在 Node 中重新加载页面.js使用 Express 和 EJS
- Webpack文件/图像加载器,用于.ejs模板中的图像
- 使用html-webpack-plugin将一个对象传递给ejs加载器