[英]Templating in Electron?
这里有一个简单的问题,但我没有找到有用的资源。 Electron 中是否可以进行模板化? 使用 Jade 或 Handlebars 显示动态模板? 我知道 is.loadURL() 需要一个 static html 文件。
动态可以吗?
谢谢。
你可以给电子哈巴狗一个机会。 https://github.com/yan-foto/electron-pug
通过在Electron主进程中运行本地服务器,肯定可以使用Jade或Handlebars进行动态模板化。 但是我不建议这样做,因为它有点倒退。 Electron主要是一个前端框架,而运行本地服务器对于某些事情是有益的,模板并不是真正的其中之一。
大多数人使用像Angular或React这样的前端JS框架。
您可以通过protocol.registerBufferProtocol注册新的缓冲区协议 。
main.js
var electron = require('electron');
var app = electron.app;
var protocol = electron.protocol;
var BrowserWindow = electron.BrowserWindow;
var pug = require('pug');
var window;
app.on('ready', function () {
// Define the `pug` scheme
protocol.registerBufferProtocol('pug', function (request, callback) {
var url = path.normalize(request.url.substr(7));
var content = pug.renderFile(url);
callback({
mimeType: 'text/html',
data: new Buffer(content)
});
});
window = new BrowserWindow({width: 600, height: 600});
// Load your file using the `pug` protocol
window.loadURL(url.format({
pathname: path.join(__dirname, 'index.pug'),
protocol: 'pug:',
slashes: true
}));
});
index.pug
html
head
title My title
body
h1 Hello world!
在这里添加可能为时已晚,但认为这可能是值得的。 我添加了一个包来处理从任何渲染器添加视图和处理资产路径。 到目前为止,我刚刚添加了ejs渲染器,但计划添加pug和haml作为额外的默认渲染器,但它也很容易扩展并添加自己的渲染器。 该软件包称为电子视图渲染器https://www.npmjs.com/package/electron-view-renderer
希望这可以帮助像我这样的团队。 它还处于起步阶段,欢迎所有评论和贡献
你可以使用 ejs-electron 来达到同样的目的。 你可以在 github 上查看它,只需按如下方式安装它: npm i ejs-electron --save 只需在你的主 js 文件中需要它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.