将html模板文件合并到一个JS文件中

2023-11-23

  1. 我有 HTML 模板文件(下划线模板语法)
  2. 这些文件以 HTML 格式保存,因此很容易编辑(IDE 语法突出显示)
  3. 我不想用ajax获取它们,而是将它们全部组合起来并将它们包含为js file.
  4. 使用 GULP 作为我的任务运行程序,我希望它能以某种方式结合所有HTML 为类似这样的内容,作为我可以包含在构建过​​程中的 javascript 文件:

template_file_name是 HTML 文件名。

var templates = {
   template_file_name : '...template HTML string...',
   template_file_name2 : '...template HTML string...',
   template_file_name3 : '...template HTML string...'
}

我真的不知道如何解决这个问题,以及如何从所有文件创建这样的文本。是的,我可以将每个单独的文件转换为字符串,但如何将其放入对象中?


更新 - 2015 年 10 月 25 日 - ES6 模块:

对于那些想要将模板作为 ES6 模块的人,我创建了gulp 文件内容到模块

演示输出:

export var file_name = "This is bar.";
export var file_name2 = "This is foo.\r\n";
export var my-folder__file_name = "This is baz.\r\n";

我所有的 NPM 包都与使用 gulp 组合模板文件相关:

  1. https://www.npmjs.com/package/gulp-file-contents-to-keys
  2. https://www.npmjs.com/package/gulp-file-contents-to-modules
  3. https://www.npmjs.com/package/gulp-template-compile-es6

我发现了这个很棒的工具,它完全可以满足我的需求:

https://www.npmjs.org/package/gulp-template-compile

Usage (简单如):

gulp.task('templates', function () {
    gulp.src('./views/templates/**/*.html')
        .pipe(template()) // converts html to JS
        .pipe(concat('templates.js'))
        .pipe(gulp.dest('./js/dist/'))
});

然后您可以使用以下方式访问键/值对象window.JST。这些值是函数(我不知道为什么,但就是这样)

更新 - 2015 年 8 月 21 日

我决定使用usegulp 文件内容转 json这是从文件内容生成 JSON 的最简单的方法。

更新 - 2016 年 7 月 19 日

我创建了 3 个 NPM 包(可能对某人有用):

  1. https://www.npmjs.com/package/gulp-file-contents-to-keys
  2. https://www.npmjs.com/package/gulp-file-contents-to-modules
  3. https://www.npmjs.com/package/gulp-template-compile-es6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将html模板文件合并到一个JS文件中 的相关文章

  • 单击输入[复选框]的标签将触发父级单击事件两次(淘汰)

    考虑这把小提琴 http jsfiddle net 9rkrahm6 我有一个
  • 了解设置 JQuery 变量

    了解设置 JQuery 变量 最近 我通过在 StackOverflow 上遇到的另一个问题寻找帮助 了解到如何设置 JQuery 变量 如下所示 您可以通过简单地调用变量来创建输入字段 并且锚变量似乎也定义了样式 var clicked
  • 使用模数按字母顺序对列表进行排序

    我在获取元素列表并按字母顺序对它们进行排序方面没有任何问题 但我很难理解如何使用模数来做到这一点 更新 这是按我的方式工作的代码 但是 我更喜欢下面提供的答案的可重用性 因此接受了该答案
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • Meteor - 从客户端取消服务器方法

    我正在通过服务器方法执行数据库计数 用户可以选择他们希望如何执行计数 然后调用该方法 我的问题是 计数可能需要一些时间 并且用户可能会在方法运行时改变主意并请求不同的计数 有什么方法可以取消调用的方法并运行新的计数吗 我认为 this un
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 通过 CDN 使用 Dojo 时如何加载自定义 AMD 模块?

    我正在使用 google 的 CDN 并尝试使用他们的加载程序加载我自己的 AMD 模块 我知道我做错了什么 但我被困住了 有任何想法吗
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • Electron - 为什么在关闭事件时将 BrowserWindow 实例设置为 null

    The 电子文档 https electronjs org docs api browser window 提供以下代码示例来创建新窗口 const BrowserWindow require electron let win new Br
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28

随机推荐

  • 在哪里可以找到 WPF DataGrid 或一般 WPF 控件的 XAML 模板? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想修改控制模板DataGrid 4 0版本 但我不确定现有的模板是什么样的 有谁知道它是什么或者我在哪里可以找到它 一般来说 对于某些WPF控件
  • 设置 MS-Access DB 以进行多用户访问

    我们正在考虑 增长 一个小型 MS Access DB 其中包含一些表 表单和多个用户的查询 使用不同的后端是另一种更长期的选择 不幸的是目前不可接受 大多数用户将是只读的 但会有一些 当前是一两个 用户必须能够进行更改 而只读用户也正在使
  • 如何在flutter中制作依赖的多级DropDown?

    我试图使依赖的多级下拉列表首先包含州列表 第二个包含城市列表 所有数据都是从 API 获取的 最初 我加载州下拉列表 当我选择州时 如果我选择城市 则加载该州的城市 成功选择城市 但当我更改州值时 会发生错误 如果第一个下拉列表中发生更改
  • tkinter.TclError:字符 U+1f449 超出 Tcl 允许的范围 (U+0000-U+FFFF)

    我正在尝试使用 tweepy 在 Tkinter 窗口上显示我的 Twitter 时间线 这是代码 import tweepy import tkinter consumer key xxxxxxxxxxxxxx consumer sec
  • 使用 Jupyter 中的浏览按钮上传文件并使用/保存它们

    我碰到这个片段用于在 Jupyter 中上传文件 但是我不知道如何将此文件保存在执行代码的计算机上 也不知道如何显示上传文件的前 5 行 基本上我正在寻找正确的命令来访问文件上传后 import io from IPython displa
  • 无法从 Azure 网站访问 Azure DB 服务器

    我使用 Visual Studio 2013 Web Express 创建了一个 MVC Web 应用程序 我已在 Azure 中为我的计算机启用了防火墙规则 并且我可以从本地计算机连接并远程调试我的网站 我让用户 SQL Server 对
  • 在 .NET C# 中以编程方式将 SVG 嵌入 PDF [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有谁知道如何使用 C 创建 pdf 并在该 PDF 中添加 SVG 文档 itextsharp 做不到 感谢这个库 http svg codeple
  • 如何按日期时间字段中的时间进行过滤?

    在模型中 输入 的是日期时间字段 我想查询数据以查找中午 开始时间 和下午 5 00 结束时间 之间进行的所有条目 selected Entry objects filter entered gte start time entered l
  • 错误:原因:无效的流标头:android studio 2.3.1 中的000900D9

    我正在使用 android studio 2 3 1 昨天工作正常但现在它给我一个错误错误 原因 无效的流标头 000900D9此消息抛出自消息 Gradle 同步对话框 以下是我为解决此问题所做的步骤 但对我来说没有任何作用 1 使缓存无
  • ASP.NET TempData 即使在读取后也不会被清除

    我有一个类似于下面的控制器操作 TempData 由我的框架初始化 我注意到 一旦读取该值 TempData 就不会清除该值 如操作 EmployeeUnderAge 中所示 TempData什么时候清除已经读取的数据 public cla
  • HttpLoggingInterceptor 上的应用程序崩溃

    我已经使用 Retrofit 2 okhttp 和 okhttp logging interceptor 创建了项目 private static APIInterface apiInterface private static RestC
  • 在客户端设置 ASP.NET 按钮属性并在服务器端读取属性值

    我怎样才能检索Button使用javascript更改属性值后的自定义属性 Example Asp file
  • 使用 DateTime.ParseExact 仅获取时间(不包含日期)

    当我使用 DateTime ParseExact 时 我得到了意想不到的结果 这是我的测试代码 Dim MinVal As DateTime 12 00 01 AM Dim MaxVal As DateTime 11 59 59 PM Di
  • Android - 如何从 url 读取文本文件?

    我将一个文本文件 txt 上传到服务器 现在我想读取该文本文件 我尝试了这个例子 但没有运气 ArrayList
  • 访问多维数组的元素是否越界未定义行为?

    请原谅这个令人困惑的问题标题 但我不确定如何更清楚地表达它 在 C 语言中 越界访问数组被归类为未定义行为 然而 数组元素保证在内存中连续排列 并且数组下标运算符是指针算术的语法糖 例如x 3 x 3 因此 我个人希望下面的代码的行为是明确
  • Hash::make('password') 每次调用返回不同的结果

    所以 标题基本上描述了我的问题 我的 Hash make 疯了 我已经创建了一个带有哈希密码的用户表 但我无法让 Laravel 接受我的凭据 我认为问题出在 Hash make 中 因此 测试这段代码 Route get function
  • 如何复制word文档的内容?

    我想编写一个程序 从 Word 文档复制文本并将其粘贴到另一个文档 我正在尝试使用python docx图书馆 我可以使用以下代码来做到这一点 但它不会复制bold italic 下划线或彩色部分原样 仅包含其文本 from docx im
  • Rails 5 db:重置不起作用

    我想重置 Rails 5 项目的数据库 但是rails db reset命令不起作用 错误信息 Permission denied unlink internal C sites5 dawnrebirth db development sq
  • 在 div 中包围希伯来语和英语文本

    我正在尝试在段落中的希伯来语和英语句子周围添加跨度标签 例如 那么 到底怎么样了 会变成 span so span span span span all whats up span span span 我一直在尝试使用正则表达式 但它只是删
  • 将html模板文件合并到一个JS文件中

    我有 HTML 模板文件 下划线模板语法 这些文件以 HTML 格式保存 因此很容易编辑 IDE 语法突出显示 我不想用ajax获取它们 而是将它们全部组合起来并将它们包含为js file 使用 GULP 作为我的任务运行程序 我希望它能以