定义未定义(ESLint)

25

我一直在遇到一个ESLint错误 '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
    }
}

它不会被本地定义,因为每个人的期望和要求都不同。这就是为什么有一个.rc文件,以便每个人都可以为自己指定全局要求。所以,是的,只需在您的配置文件中添加一个全局部分即可。 - Andy
1个回答

47

在你的.eslintrc.json中设置:

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

当启用"amd"环境时,eslint为definerequire注册全局变量。

除非你真的在同一代码库中混合使用AMD和CommonJS,否则建议关闭"commonjs"环境。


这个是专门针对AMD CPU的吗? - A P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接