我正在构建一个网络应用程序,它在客户端构建了动态小部件。目前我使用nodejs和pug作为我的服务器端模板库,我喜欢pug的简单性。
我希望在服务器上有一系列小的 pug 文件,客户端可以将其用作构建块来构造用户所需的小部件。
我尝试使用此处找到的先前解决方案:客户端服务器端模板nodejs
然而,这个解决方案对于我想要的东西来说似乎有点矫枉过正。而且,看起来 ezel 项目不再维护,它已经 2 年没有更新了,而且仍然使用 jade(npm 给了我很多错误)。
我只是希望能够在浏览器中的 pug 中构建我的动态小部件。该页面似乎正是我想要的:https://pugjs.org/api/reference.html具体来说是 pug.renderFile('path/to/file.pug', options);函数看起来正是我想要用来动态构建我的小部件的(用户拥有关于如何构造/显示小部件的所有控件,因此浏览器需要动态构造 html 视图)
我的问题是依赖于: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 start 脚本以执行以下操作:
pug -c -w --name-after-file -o public/js/views views/client/
这允许我做的是将我的客户端视图写入 view/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) 来获取模板化字符串(您可以使用不同的参数任意调用它以获得不同的视图)。当服务器端的视图未知时,这允许我从客户端任意/动态地组合和构造视图。
我喜欢这种工作流程方法,但我愿意接受更好的建议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)