Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “如何禁用”;特别命令;在node.js REPL中?_Javascript_Node.js_Console_Read Eval Print Loop - Fatal编程技术网

Javascript “如何禁用”;特别命令;在node.js REPL中?

Javascript “如何禁用”;特别命令;在node.js REPL中?,javascript,node.js,console,read-eval-print-loop,Javascript,Node.js,Console,Read Eval Print Loop,问题节点REPL有一些类似于.break和.save。我从不使用这些,但我经常尝试粘贴到REPL代码中,其格式如下: words.append('ul') .classed('my-class', true) .selectAll('li.new-class') .data((tuple, tupleIdx) => obj[tupleIdx]) .enter() .append('li') .classed('new-class', true

问题节点REPL有一些类似于
.break
.save
。我从不使用这些,但我经常尝试粘贴到REPL代码中,其格式如下:

words.append('ul')
    .classed('my-class', true)
    .selectAll('li.new-class')
    .data((tuple, tupleIdx) => obj[tupleIdx])
    .enter()
    .append('li')
    .classed('new-class', true)
    .text(d => '' + foo(d));
(这是d3.js代码,但在使用Promissions时也会发生类似的情况,Promissions是一系列
。然后(…)
s从每一行开始。)

当然,当node看到
.classed
时,它会抱怨“REPL关键字无效”。然后在自己的行上
,并继续打印几个屏幕长的一系列错误消息

脆弱的伪解决方法我在Vim中使用了一个regexp来解决这个问题,它将结束括号和点之间的任何空格移动到点(
:%s/)\n\(\s*\)\。/)。\r\1/
为了完整性),但这很繁琐,我通常希望从浏览器复制粘贴,而不是切换到Vim来重新格式化某些代码

问题是否有任何方法可以禁用node REPL“功能”,这些功能虽然用意良好,但与标准JavaScript实践(例如以点开头的行)相冲突

或者这对于终端应用程序来说太复杂了,如果是的话,有没有一种方法可以通过浏览器的JS控制台(不仅仅是处理
console.log
)与节点REPL通信


PS.这个问题主要是关于以
开头的行,但另一个这样的冲突是
(谢天谢地,我们已经解决了)。

这里有一个尝试性的问题:使用,我编写了一个小模块,允许我
粘贴()
剪贴板的内容,并在修复以
开头的行后对其进行评估

这将进入
paste.js

var cp = require('copy-paste'); // npm install node-copy-paste

module.exports = function() {
  return eval(cp.paste().replace(/\n\s*\./g, "."));
};

然后在节点REPL中,
paste=require('./paste');粘贴()。非常脆弱,但它可能会解决问题,而且往往非常有价值。

这里有一个尝试性的东西:使用,我编写了一个小模块,可以
粘贴()
剪贴板的内容,并在修复从
开始的行后
评估它

这将进入
paste.js

var cp = require('copy-paste'); // npm install node-copy-paste

module.exports = function() {
  return eval(cp.paste().replace(/\n\s*\./g, "."));
};
然后在节点REPL中,
paste=require('./paste');粘贴()。非常脆弱,但它可能会解决问题,往往是有价值的