【问题标题】:xo lint error: `document` is not definedxo lint 错误:未定义“文档”
【发布时间】:2019-02-13 07:49:17
【问题描述】:

我是Standard 的长期用户,现在我正在做一个新项目,我被要求开始写分号。

我正在尝试同时使用 xo、Babel 和 React,但是当我尝试 lint 代码时,我不断收到错误消息: document is not defined. no-undef

我尝试在我的 package.json 文件中的 xo 字段中添加一个 env 选项,但没有成功。

我的xo 配置:

"xo": {
  "esnext": true,
  "extends": "xo-react",
  "space": true,
  "rules": {
    "react/jsx-space-before-closing": 0
  } 
}

【问题讨论】:

    标签: javascript eslint


    【解决方案1】:

    每次使用全局时都要指定 /** global document **/ 之类的 linting 选项并编辑配置文件很麻烦。

    可以通过使用--env=browser 选项来抑制此错误:

    xo --env=browser [<file|glob> ...]
    

    注意: Node.js 也有同样的问题,linter 会抱怨 require 和朋友没有定义。在这种情况下,开关必须更改为--env=node

    但是,XO 默认将env 设置为node,因此在大多数情况下这不会成为问题。如果您的项目同时包含客户端和服务器文件,您将需要多个环境。在这种情况下,--env 开关可以设置多次:

    xo --env=browser --env=node [<file|glob> ...]
    

    【讨论】:

    • 也可以在package.json中指定:"xo": { "envs": ["browser"] },
    【解决方案2】:

    你必须在 ESLint 中定义全局变量。有两种方法可以做到这一点,首先作为代码中的注释:

    /* global document */

    或者你可以像这样在配置文件中进行配置:

    { "globals": { "var1": true, "var2": false } }

    更多信息请查看ESLint docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 2022-10-17
      • 2023-02-02
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多