Imba 的交互式调试器和 REPL。
节点管理:
npm i -g imba-shell
纱:
yarn global add imba-shell
要开始使用imba-shell
,请运行以下命令:
imba-shell
要启用 TypeScript,您可以传递--ts
标志:
imba-shell --ts
请注意,您还可以使用
imbas
代替imba-shell
。
要使用多行模式,请使用 .editor 命令:
>>> .editor
这将打开一个多行编辑器。
使用多行模式时,可以使用Shift+Tab
组合键来缩进当前行。
要删除选项卡,请使用Backspace
键。
要清除imba-shell
,请使用clear
helper:
>>> clear !
您还可以使用
.clear
命令。
要退出imba-shell
,请使用exit
助手:
>>> exit !
您还可以使用
.exit
命令。
您可以使用imba-shell
作为运行时:
imbar file.imba
imbar
别名:imba-r
、imba-runtime
、ir
。
将参数传递给您的脚本:
imbar craftsman.imba mail:send --help
持续构建并观察项目(开发目的):
imbar --watch server.imba
标志:
--watch
别名:
-w
创建自执行脚本:
hello
#!/usr/bin/env imbar
const name = process . argv . slice ( 2 )[ 0 ] ?? 'stranger'
console . log "Hello {name}"
如果您使用的是Linux
、 FreeBSD
或MacOS
,您可以使脚本可执行:
chmod u+x hello
注意:当创建不以
".imba"
结尾的脚本时,Imba 运行时会将您的脚本克隆到以.imba
结尾的隐藏文件中,并执行它而不是原始脚本。执行完成后,隐藏文件将被删除。
运行脚本:
./hello Donald # Hello Donald
./hello # Hello stranger
imba-shell
也可以用作模块。这是一个例子:
因巴:
import { ImbaRepl } from 'imba-shell'
# you can also pass "typescript" instead of "imba"
const repl = new ImbaRepl 'imba' , 'imba> '
repl . run !
JavaScript:
const { ImbaRepl } = require ( 'imba-shell' ) ;
/** you can also pass "typescript" instead of "imba" */
const repl = new ImbaRepl ( 'imba' , 'imba> ' ) ;
repl . run ( ) ;
请注意,您可以在
run
函数中传递 Node.js repl 选项的对象。
以下是如何启用历史记录功能的示例:
因巴:
import { ImbaRepl } from 'imba-shell'
import os from 'os'
import path from 'path'
const repl = new ImbaRepl 'imba' , 'imba> ' , path . join ( os . homedir !, '.my_repl_history' )
repl . run !
JavaScript:
const { ImbaRepl } = require ( 'imba-shell' ) ;
const os = require ( 'os' ) ;
const path = require ( 'path' ) ;
const repl = new ImbaRepl ( 'imba' , 'imba> ' , path . join ( os . homedir ( ) , '.my_repl_history' ) ) ;
repl . run ( ) ;
您可以将任何有效路径设置为历史文件。
您可以使用registerCommand
函数注册命令:
因巴:
repl . registerCommand 'goodbye' , do
console . log 'Goodbye!'
this . close !
JavaScript:
repl . registerCommand ( 'goodbye' , () = > {
console . log ( 'Goodbye!' );
this . close ();
});
您可以使用registerCallback
函数注册 REPL 中可用的函数和属性:
因巴:
const repl = new ImbaRepl
repl . registerCallback do ( ctx )
ctx . foo = 'bar'
JavaScript:
const repl = new ImbaRepl ( ) ;
repl . registerCallback ( ( ctx ) => {
ctx . foo = 'bar'
} )
当在 REPL 中调用foo
时,它将返回bar
。
安装依赖项:
$ npm i
从源代码构建:
$ npm run build
测试Imba-Shell
:
$ npm run test
如果您发现任何与安全相关的问题,请发送电子邮件至 [email protected],而不是使用问题跟踪器。
麻省理工学院许可证 (MIT)。请参阅许可证文件以获取更多信息。