Отключить это сообщение - Назначение выражения _ теперь отключено? NodeJs-РЕПЛ

Когда я использую 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 ответ

Таким образом, вы можете определить свой собственный пользовательский репл, если хотите, документы здесь: https://nodejs.org/api/repl.html

Например, если вы хотите изменить описываемое вами поведение, вы можете переписать функцию записи, чтобы пропустить этот вывод, или просто (возможно, проще) переопределить саму переменную контекста:

  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.

Другие вопросы по тегам