Как настроить ESLint для поиска объявлений в файлах с расширением *.js в проекте Google Apps Script?

Как настроить ESLint для обнаружения объявлений функций в различных файлах Google Apps Script? Когда я запускаю npx eslint *.js, я получаю ошибку 'formulasFillByColumnPivotLNO' is not defined, хотя функция объявлена в другом файле. Я использовал конфигурацию .eslintrc.json для Google Apps Script, но ESLint все равно не обнаруживает объявления функций в других файлах.
  • 28 декабря 2023 г. 8:07
Ответы на вопрос 2
Для настройки ESLint в проекте Google Apps Script вы можете следовать следующим шагам:

1. Установите ESLint и необходимые плагины:

```
npm install eslint eslint-plugin-googleappsscript
```

2. Создайте файл `.eslintrc.json` в корневой папке проекта и добавьте следующую конфигурацию:

```json
{
  "plugins": [
    "googleappsscript"
  ],
  "parserOptions": {
    "ecmaVersion": 2017,
    "sourceType": "module"
  },
  "env": {
    "googleappsscript/googleappsscript": true,
    "es6": true
  },
  "rules": {
    "no-undef": "off"
  }
}
```

3. Укажите пути к файлам с расширением `.js` для выполнения проверки. Например:

```shell
npx eslint src/**/*.js
```

Вы можете использовать шаблоны пути, такие как `**` для поиска файлов во всех папках и `*` для поиска всех файлов с заданным расширением в текущей папке.

С помощью этих настроек, ESLint будет выполнять проверку, используя правила, специфичные для Google Apps Script, и будет обнаруживать объявления функций в различных файлах.

Если вы все равно получаете ошибку `'formulasFillByColumnPivotLNO' is not defined`, проверьте, правильно ли импортируется или объявляется функция `formulasFillByColumnPivotLNO` в файле, где она используется.
Скрипты предполагают, что вы используете общее пространство имен, а система модулей (файлов) для которой предназначен линтер -- каждый файл является закрытым пространством имен. Поэтому либо делать комментарий 

/* global SuperClass */

Либо писать на Typescript.
Похожие вопросы