Определить не определено (ESLint)

Я продолжаю получать ошибку ESLint 'define' is not defined. (no-undef) 'define' is not defined. (no-undef). Полагаю, я мог бы определить define глобально, но разве это не должно поддерживаться изначально?

Пример кода с использованием define:

define([], function () { // Error here!
    'use strict';
    ....

Это мой eslintrc.json:

{
    "env": {
        "shared-node-browser": true,
        "commonjs": true
    },
    "plugins": ["requirejs"],
    "extends": ["eslint:recommended"],
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "windows"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "always"
        ],
        "requirejs/no-invalid-define": 2,
        "requirejs/no-multiple-define": 2,
        "requirejs/no-named-define": 2,
        "requirejs/no-commonjs-wrapper": 2,
        "requirejs/no-object-define": 1
    }
}

Ответ 1

В вашем наборе .eslintrc.json:

"env": {
    "amd": true
},

Когда среда "amd" включена, eslint регистрирует глобальные переменные для define и require.

Я бы также отключил среду "commonjs" если вы действительно не смешиваете AMD и CommonJS в одной и той же базе кода.