禁用此消息-现在已禁用对_的表达式分配? NodeJs-REPL

时间:2018-09-09 09:26:03

标签: node.js underscore.js node-repl

使用var _ = require('underscore')时收到此消息Expression assignment to _ now disabled.

有什么办法可以避免此消息?

我可以更改变量名称,但是我发现有人具有相同的节点,并且未引发该消息。

root@other:/# node
> var _ = require('underscore');
undefined
>

root@my:/# node
> var _ = require('underscore');
Expression assignment to _ now disabled.
undefined
>

1 个答案:

答案 0 :(得分:0)

因此,您实际上可以根据需要定义自己的自定义副本,文档位于:https://nodejs.org/api/repl.html

例如,如果您想更改所描述的行为,则可以覆盖writer函数以跳过该输出,或者只是(可能更容易)重新定义上下文变量本身:

  const repl = require('repl');
  const underscore = require('underscore');

  const r = repl.start('> ');
  Object.defineProperty(r.context, '_', {
     configurable: false,
     enumerable: true,
     value: underscore
   });

或者,如果您只想允许它没有错误,请执行他们的操作,但是跳过错误消息:

  Object.defineProperty(context, '_', {
      configurable: true,
      get: () => this.last,
      set: (value) => {
           this.last = value;
       }
   });

要实际使用上述内容,您需要运行包含上述内容的脚本(如链接文档中所述)。只需使用

即可完成此操作
  node myrepl.js

或者,如果您正在运行Linux或MacOS,则可以使其成为可执行脚本并将其放入PATH。