- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个正在构建的网络应用程序,它具有在客户端构建的动态小部件。目前我使用 nodejs 和 pug 作为我的服务器端模板库,我喜欢 pug 的简单性。
我想在服务器上有一系列小的 pug 文件,客户端可以将其用作构造 block 来构建用户所需的小部件。
我尝试使用此处找到的先前解决方案: client side server side templating nodejs
但是,对于我想要的,该解决方案看起来有点矫枉过正。而且,看起来 ezel 项目不再维护,它已经 2 年没有更新了,它仍然使用 jade(npm 给了我很多错误)。
我只想能够在浏览器中用 pug 构建我的动态小部件。这个页面似乎正是我想要的: https://pugjs.org/api/reference.html特别是 pug.renderFile('path/to/file.pug', options);功能似乎正是我想用来动态构建我的小部件的功能(用户拥有对如何构建/显示小部件的所有控制,因此浏览器需要动态构建 html View )
我的问题是依赖于: https://pugjs.org/js/pug.js并且需要在浏览器中执行 require('pug') 。我已经将 pug 安装为我的 package.json 的一部分。有没有更强大的方法直接获取 pug.js?我对 Web 开发还是个新手,我的背景是 C++/Java,所以我不确定直接在浏览器中使用 pug.js 是最好的解决方案还是有更好的标准解决方案。我发布的 stackoverflow 问题是我遇到的唯一一个远程相似的帖子。
最佳答案
我研究并测试了一个我真正喜欢的解决方案。 NPM 有一个很酷的包,叫做 pug-cli。
https://www.npmjs.com/package/pug-cli
我修改了我的 npm 启动脚本以执行以下操作:
pug -c -w --name-after-file -o public/js/views views/client/
这允许我做的是将我的客户 View 写入 views/client 文件夹中。一个任务在后台运行,监视 views/client/中的变化。更改后,它会将 views/client/文件夹中的 .pug 文件编译成 javascript,并将其保存到 public/js/views/中。然后在客户端代码中,您只需包含 Template.js 并在您的 js 中调用 Template(parameters)。客户端不需要 pug.js。这是带调试的,要关闭调试,用-D运行
例如,views/client/example.pug 将自动编译为 public/js/views/exampleTemplate.js然后,您在客户端中要做的就是包含此 js 文件,并调用 exampleTemplate(params) 来获取您的模板化字符串(您可以使用不同的参数任意调用它以获得不同的 View )。当服务器端的 View 未知时,这允许我从客户端任意/动态地组合和构造 View 。
我喜欢这种工作流程方法,但我愿意接受更好的建议。
关于javascript - 使用 nodejs 和 pug 的客户端模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43025557/
将对象从 app.js 传递给 Pug router.get('/', getMenuList, function (req, res, next) { res.render('menu_it
我们如何在 Jade/Pug 中跨多行写入长属性值? SVG 路径往往很长。我们希望将属性值写在多行上以提高可读性。例如,Mozilla 的 tutorial用 HTML 编写很容易阅读。 有什么方法
我很难找到一个好的解决方案。问题是我想要在我的导航项目上动态更新事件类,但是我不知道如何去做。任何人都可以帮助我解决自动为当前页面对应的导航项目提供某个类的解决方案吗? 这是我的 layout.pug
如果我想引用文字 !{a}在代码中。我该怎么办? - var a = '5' // I have to use the variable name "a" script. var str = "!
我正在尝试向 Jade 模板添加动态类。像这样: - var obj = {a: 1, b: 2, c: 3}; - var len = Object.keys(obj).length; .abc-#
如何在 Pug 模板引擎中阻止注释掉代码? 我知道如何注释掉一行: //-doesn't show 但我不想像这样写完整的 html 评论: 最佳答案 //- Just indent the
我想要这样的东西: html head style(type="text/css") table { width: 100% } body
我正在 keystone 中使用哈巴狗,在添加侧面导航时出现这样的错误。 > 6| a(href="#")About --------------------^ 7| a(href="#")Servi
这是我要完成的事情的简化版本: mixin foo(bar) = bar + ".html" a(href= +foo("baz")) test 我想将 anchor 标记编译为 test ,
Jade 不再被称为“ Jade ”。它现在被称为“帕格”。为了将旧的 jade 项目转换为新的 pug 格式,您需要将所有旧的 .jade 文件重命名为 .pug 文件。 手工制作既痛苦又乏味,肯定
我已经安装 https://github.com/pug-php/pug使用 composer,现在我的项目中有一个子目录 vendor/pug-php/pug,但我不知道如何使用它。 如果我尝试 $
我正在尝试编写一个简单的应用程序,例如待办事项列表,当我按下按钮时,我需要动态创建(在div中使用增量id),并向HTML输入输入一些文本。例如: 问题是,当我尝试获取 var data 时,
是否可以在父 pug 文件中为 includeed pug 文件传递参数。例如,如果我有一个子模板 example.pug: p #{name}'s Pug source code! 还有一个父级
我需要在 pug 文件中插入一个包含一些 pug 格式代码的字符串。 我测试过的内容: - var text = "i.home.icon" div= text div !{text} div #{t
我有以下代码(Chart.js 片段): datasets: [{ label: 'Hashes/s', data: numbe
我有一个带有数组的 pug 模板,我想将其传递给用于填充某些 schema.org (json) 标记的 mixin。 代码如下: 配置文件.pug include ../components/bio
我正在尝试从服务器加载数据到我的哈巴狗模板中。 我的路线如下所示: app.get('/serverdata', async(req, res) => { const chartData = []
我正在使用 Node.js、Express 和 Pug 创建一个简单的 Web 服务器。 包.json: { "name": "testing", "version": "0.0.7",
我的 src/ 目录如下: src/ ---about/ ------history.pug ------mission.pug ---contact/ ------email.pug ---inde
我在 Symfony 2.8 中安装 pug-php/pug-symfony 时遇到问题。我从全新的 symfony 安装开始并执行 composer require pug-php/pug-symf
我是一名优秀的程序员,十分优秀!