我给全局窗口对象分配了一个属性,但是当我运行eslint时,我得到了这个:

“window”没有定义

我在eslint文档中看到了这个:

下面将window定义为一个全局变量,用于不触发正在测试的规则的代码:

valid: [
  {
    code: "window.alert()",
    globals: [ "window" ]
  }
]

我试过在包中添加这样的东西。json文件有eslint允许“窗口”作为一个全局变量,但我一定是做错了什么。从文档中,似乎我可能需要在一个单独的文件中做这样的事情,但是有一种方法可以在包中定义一些允许的全局变量。json文件吗?


当前回答

有一个内置的环境:浏览器,包括窗口。

示例.eslintrc.json:

"env": {
    "browser": true,
    "node": true,
    "jasmine": true
  },

更多信息:https://eslint.org/docs/user-guide/configuring/language-options#specifying-environments

也可以看看包装。下面是chevin99的Json答案。

其他回答

我在这个页面上找到了它:http://eslint.org/docs/user-guide/configuring

在包中。Json,这工作:

"eslintConfig": {
  "globals": {
    "window": true
  }
}

有一个内置的环境:浏览器,包括窗口。

示例.eslintrc.json:

"env": {
    "browser": true,
    "node": true,
    "jasmine": true
  },

更多信息:https://eslint.org/docs/user-guide/configuring/language-options#specifying-environments

也可以看看包装。下面是chevin99的Json答案。

在项目根目录中添加.eslintrc。

{
  "globals": {
    "document": true,
    "foo": true,
    "window": true
  }
}

你的.eslintrc.json应该包含下面的文本。 这样ESLint就知道你的全局变量了。

{
  "env": {
    "browser": true,
    "node": true
  }                                                                      
}

如果你使用的是Angular,你可以通过以下方式实现:

"env": {
    "browser": true,
    "node": true
},
"rules" : {
    "angular/window-service": 0
 }