您现在的位置是:首页 > 文章详情

Google 推出 Node 应用 Web 渲染界面 Carlo

日期:2018-11-23点击:484

在刚刚发布的 2018 JavaScript 现状调查报告中,可能有人注意到里面提到了一个新的 Headful Node 应用框架 —— Carlo 。Carlo 是 Google Labs 近日推出的一个开源项目,官方将其描述为 “ Node 应用 Web 渲染界面”。

Carlo 为 Node 应用提供 Chrome 渲染功能,使用 Puppeteer 项目与本地安装的浏览器实例进行通信,并实现远程调用基础架构,以便在 Node 和 Chrome 之间进行通信。

不同于 ElectronNW.js ,Carlo 并不会尝试将特定版本的 Chrome 和 Node.js 打包在一起,而是依赖于用户电脑上已安装的任意版本的 Chrome ,该项目的动机之一是演示本地安装的浏览器如何与开箱即用的 Node 一起使用。此外,Carlo 会分离 Node v8 和 Chrome v8 引擎,提供可维护的 model ,能够独立更新底层组件。

Carlo 并不提供构建真正桌面应用的功能,像是修改应用图标或自定义菜单,Carlo 更专注于生产力和 Web/Node 的互操作性。不过,你也可以使用 pkg 将 Carlo 应用打包到可执行二进制文件中。

示例 - 显示本地环境

Save file as example.js

const carlo = require('carlo'); (async () => {   // Launch the browser.   const app = await carlo.launch();   // Terminate Node.js process on app window closing.   app.on('exit', () => process.exit());   // Tell carlo where your web files are located.   app.serveFolder(__dirname);   // Expose 'env' function in the web environment.   await app.exposeFunction('env', _ => process.env);   // Navigate to the main page of your app.   await app.load('example.html'); })();

Save file as example.html

<script> async function run() {   // Call the function that was exposed in Node.   const data = await env();   for (const type in data) {     const div = document.createElement('div');     div.textContent = `${type}: ${data[type]}`;     document.body.appendChild(div);   } } </script> <body onload="run()">

运行应用

node example.js
原文链接:https://www.oschina.net/news/102043/google-opensource-carlo
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章