简介
workshopper-wrappedexec
是一个 npm 包,它提供了一个可执行文件的包装器,通过将所有标准输入、输出和错误流重定向到 WebSocket 协议中,在 Web 界面上实现交互式终端和命令行工具。
使用这个包,我们可以轻松地创建基于 Web 的工作坊,让用户可以在浏览器中使用命令行工具,无需安装任何软件环境。
安装
要在项目中使用 workshopper-wrappedexec
,首先要全局安装 workshopper
,然后再安装 workshopper-wrappedexec
包。
安装 workshopper
:
$ npm i -g workshopper
安装 workshopper-wrappedexec
:
$ npm i -g workshopper-wrappedexec
使用
创建一个名为 hello_commands
的新工作坊:
$ workshopper create hello_commands
切换到 hello_commands
目录:
$ cd hello_commands
在 hello_commands
目录下创建一个名为 hello.sh
的 Bash 脚本,并添加以下代码:
#!/bin/bash read -p "What is your name? " name echo "Hello, ${name}! Welcome to my workshop."
在 hello_commands
目录下创建一个名为 hello_commands.json
的 JSON 文件,并添加以下代码:
{ "hello": { "name": "Hello Commands", "description": "Say hello to someone", "moar": "Welcome to the world of Node.js!" } }
执行 workshopper-wrappedexec
命令:
$ workshopper-wrappedexec hello_commands.sh
打开浏览器,输入 URL http://localhost:3643/,就能看见 workshopper
的 Web 界面了。依次完成步骤,即可看到以下输出内容:
Exercise 1 of 1 What is your name? user1 Hello, user1! Welcome to my workshop.
原理
workshopper-wrappedexec
包含两个部分:包装器服务器和 WebSocket 客户端。包装器服务器将标准输入/输出/错误流重定向到 WebSocket 客户端,并将客户端的消息传递回标准输出和标准错误流。
客户端的工作是使用 child_process.spawn()
来执行包装器子进程,使用 WebSocket 协议与服务器通信,并在收到消息时将其打印到浏览器控制台中。
总结
在本文中,我们介绍了 workshopper-wrappedexec
包,介绍了如何使用它来创建交互式 Web 终端,让用户可以在浏览器中使用命令行工具,无需安装任何软件环境。同时,我们还介绍了包装器服务器和 WebSocket 客户端的工作原理。希望通过这篇教程读者可以对于 workshopper-wrappedexec
有所了解,并能在实际项目中应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/74097