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

合规开
• 阅读 135

JavaScript 现状调查报告中,可能有人注意到里面提到了一个新的 Headful Node 应用框架 —— Carlo 。Carlo 是 Google Labs 近日推出的一个开源项目,官方将其描述为 “ Node 应用 Web 渲染界面”。
Carlo 为 Node 应用提供 Chrome 渲染功能,使用 Puppeteer 项目与本地安装的浏览器实例进行通信,并实现远程调用基础架构,以便在 Node 和 Chrome 之间进行通信。

不同于 Electron 和 NW.js ,Carlo 并不会尝试将特定版本的 Chrome 和 Node.js 打包在一起,而是依赖于用户电脑上已安装的任意版本的 Chrome ,该项目的动机之一是演示本地安装的浏览器如何与开箱即用的 Node 一起使用。此外,Carlo 会分离 Node v8 和 Chrome v8 引擎,提供可维护的 model ,能够独立更新底层组件。
Carlo 并不提供构建真正桌面应用的功能,像是修改应用图标或自定义菜单,Carlo 更专注于生产力和 Web/Node 的互操作性。不过,你也可以使用 pkg 将 Carlo 应用打包到可执行二进制文件中。
示例 - 显示本地环境
Save file as example.js
[JavaScript] 纯文本查看 复制代码
?

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
[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
()
"

运行应用

[JavaScript] 纯文本查看 复制代码
?
1
node example.js

点赞
收藏
评论区
推荐文章
Stella981 Stella981
4年前
CAS 实现站内单点登录及实现第三方 OAuth、OpenId 登录(一)
一、CAS介绍    CAS是Yale大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点登录方法,CAS在2004年12月正式成为JASIG的一个项目。CAS具有以下特点:开源的企业级单点登录解决方案CASServer为需要独立部署的Web应用CASClient支持非
Stella981 Stella981
4年前
Javascript开发人员偏爱Deno而不是Node的5大原因
!(https://oscimg.oschina.net/oscnet/2f078ca0f30b400261bf865253aa28f0a40.jpg)NodeJS的作者RyanDahl发布了一个新的运行时,旨在解决Node的许多缺点。你最初的反应可能是“哦,太棒了,另一个Javascript框架?正是我所需
Wesley13 Wesley13
4年前
GoJS API学习
varnode{};node"key""节点Key";node"loc""00";//节点坐标node"text""节点名称";//添加节点通过按钮点击,添加新的节点到画布myDiagram.model.addNodeData(nod
Stella981 Stella981
4年前
React应用渲染界面的入口
jsx代码:varReactrequire('react');varReactDOMrequire('reactdom');varMyButtonControllerrequire('./components/MyButtonController');ReactDOM.render
Stella981 Stella981
4年前
Node.js
1.Node来历   2009年,正是推出基于Javascript语言和V8引擎的开源Web服务项目,命名为Node.js,Node.js是第一次把Javascript带到后端开发。全很很多开发人员都熟悉Javascript,所以Node.js一下子就火了。   Javascript语言本身是完善的函数式语言,在前端开发时,开发
Easter79 Easter79
4年前
TypeScrip最污的技术课
!alt(https://usergoldcdn.xitu.io/2018/9/21/165f98863487350a?imageView2/0/w/1280/h/960/format/webp/ignoreerror/1)近日Node.js之父瑞安达尔(RyanDahl)发布新的开源项目deno,从官方介绍来看,可以认为它是下一代Nod
Stella981 Stella981
4年前
Node.js 应用故障排查手册 —— 利用 CPU 分析调优吞吐量
楔子在我们想要新上线一个Node.js应用之前,尤其是技术栈切换的第一个Node.js应用,由于担心其在线上的吞吐量表现,肯定会想要进行性能压测,以便对其在当前的集群规模下能抗住多少流量有一个预估。本案例实际上正是在这样的一个场景下,我们想要上线Node.js技术栈来做前后端分离,那么刨开后端服务的响应QPS,纯使用Node.js
linbojue linbojue
1个月前
JavaScript 在 Node.js 环境中的应用
JavaScript最初是为在浏览器中运行而设计的,但随着Node.js的出现,JavaScript的应用场景得到了极大的拓展。Node.js是一个基于ChromeV8引擎的JavaScript运行环境,它使JavaScript可以在服务器端运行,为开发者