如何将我的脚本加载到node.js REPL中?

我有一个脚本foo.js ,其中包含一些我想在REPL中玩的功能。

有没有办法让节点执行我的脚本,然后用所有已声明的全局变量跳到REPL中,就像我可以用python -i foo.pyghci foo.hs


仍然没有提供您描述的确切功能的内置内容。 但是,使用替代方法require它在REPL中使用.load命令,如下所示:

.load foo.js

它逐行加载文件,就像在REPL中键入它一样。 与require不同,它会使用您加载的命令污染REPL历史记录。 但是,它具有可重复性的优点,因为它不像require那样被缓存。

哪个对你更好取决于你的用例。


编辑:它的适用性有限,因为它不能在严格模式下工作,但三年后,我了解到,如果您的脚本没有'use strict' ,则可以使用eval加载脚本而不污染REPL历史记录:

var fs = require('fs');
eval(fs.readFileSync('foo.js').toString())

由于厌倦了重复加载脚本,我创建了replpad。

只需通过以下命令安装它: npm install -g replpad

然后通过运行使用它: replpad

如果您希望它监视当前和所有子目录中的所有文件,并在更改do时执行replpad .它们replpad .到repl中replpad .

查看网站上的视频,以更好地了解它的工作原理,并了解其它一些具有以下优点的功能:

  • 经由在repl访问核心模块文档 dox()函数被添加到每一个核心功能,即fs.readdir.dox()
  • 经由在repl访问用户模块自述 dox()函数被添加到通过NPM安装在每个模块,即marked.dox()
  • 访问函数突出显示的源代码 ,关于定义哪里函数的信息(文件,linenumber)和函数注释和/或jsdocs ,如果可能的话通过添加到每个函数的src属性,例如express.logger.src
  • 脚本对讲机支持 (请参阅.talk命令)
  • 添加命令和键盘快捷键
  • vim密钥绑定
  • 关键地图支持
  • parens通过匹配令牌插件进行匹配
  • 通过键盘快捷键或.append命令将在repl中输入的代码附加到文件中

  • 我做了Vorpal.js,它通过将节点添加到交互式CLI中来解决这个问题。 它支持一个REPL扩展,它会将您放入正在运行的应用程序的上下文中的REPL中。

    var vorpal = require('vorpal')();
    var repl = require('vorpal-repl');
    
    vorpal
      .delimiter('myapp>')
      .use(repl)
      .show()
      .parse(process.argv); 
    

    然后你可以运行该应用程序,它将放入REPL中。

    $ node myapp.js repl
    myapp> repl: 
    
    链接地址: http://www.djcxy.com/p/97021.html

    上一篇: How do I load my script into the node.js REPL?

    下一篇: what is "strict mode" and how is it used?