Правильный способ требовать модули для предотвращения ошибок eslint - PullRequest
0 голосов
/ 18 апреля 2019

Я недавно начал использовать eslint, и я обнаружил, что весь мой код вызывает ошибки там, где у меня есть необходимые модули, поскольку он говорит, что имена функций не назначены.

mymodule.js

module.exports = {
  one: function() {
    console.log(1);
  },
  two: function() {
    console.log(2);
  }
}

index.js

require('./mymodule.js');
one(); // eslint says 'one is not defined'

Должен ли я заранее объявить 'one' как переменную, это правильный путь?Или есть лучший способ?

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Обычно я добавляю комментарий global вверху файла:

/* global one */

require('./mymodule.js');
one();

Вы также можете указать несколько идентификаторов в виде списка через запятую: /* global one, two */.

Кроме того, вы можете добавить свои необъявленные идентификаторы в раздел global вашего файла .eslintrc:

{
    ...

    "globals": {
        "one": "readonly"
    },

    ...
}

Дополнительная информация: https://eslint.org/docs/user-guide/configuring#specifying-globals

0 голосов
/ 18 апреля 2019

Я вообще не могу запустить ваш пример "index.js" (Узел 8.15), поскольку сам интерпретатор узла говорит мне то же самое, что говорит вам eslint ReferenceError: one is not defined. Материал, который вы экспортируете / импортируете из модуля, не попадает в глобальное пространство имен.

Я бы сделал одно из следующих действий:

А) Импорт всего mymodule

const mymodule = require('./mymodule');
mymodule.one();

B) Импортируйте забавные части mymodule по имени

const { one /* , two, three, etc */ } = require('./mymodule');
one();

C) Импорт одного элемента из mymodule

const one = require('./mymodule').one;
one();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...