Вы не предоставили примеры кода в своем вопросе, но я предполагаю, что вы делаете что-то вроде этого:
api.js
const api = {
fetchData() {
// some code that fetches data
}
};
core.js
const core = {
init() {
api.fetchData();
}
};
Правило ESLint, которое вызывает ошибки при линтировании этих модулей JavaScript, - это правило no-undef .
Проверяет переменныекоторые используются без определения.В приведенном выше примере кода core.js это будет api
, поскольку он определен в другом модуле, о котором ESLint не знает.
Вам все равноэти ошибки, потому что в вашем фактическом JS-пакете, используемом в рабочей среде, код из api.js и core.js объединяется в один пакет, поэтому будет определен api
.
Так что на самом деле api
в этом примере является глобальной переменной.
Правило no-undef
позволяет вам определять глобальные переменные, чтобы они не вызывали ошибок.
Есть два способа сделать это:
Использование комментариев
В начале модуля core.js добавьте эту строку:
/* global api */
Использование ESLint Config
Как объяснено здесь - добавьте это в ваш .eslintrc файл:
{
"globals": {
"api": "writable"
}
}
Примечание
Как указали некоторые комментаторы на ваш вопрос, вероятно, было бы лучше использовать import и экспорт операторов в модули вместе с инструментом связывания модулей, таким как webpack , для создания одного пакета из ваших модулей JavaScript.