carlo 介绍
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
const carlo = require('carlo');
(async () => {
// Launch the bro wser.
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
GitHub: https://github.com/GoogleChromeLabs/carlo
网站描述: 为Node程序提供了由Google Chrome浏览器提供 支持 的丰富渲染 功能
carlo官方网站
官方网站:
如果觉得 网站内容还不错,欢迎将 网站 推荐给程序员好友。