当前位置: 首页 > 知识库问答 >
问题:

扩展名为“.js”的文件中不允许使用JSX,并带有eslint config airbnb

吴腾
2023-03-14

我已经安装了eslint config airbnb,它应该为React预先配置eslint:

我们的默认导出包含所有ESLint规则,包括ECMAScript 6和React。它需要eslint、eslint插件导入、eslint插件反应和eslint插件jsx-a11y。

我的. eslintrc扩展其配置:

{ "extends": "eslint-config-airbnb",
  "env": {
    "browser": true,
    "node": true,
    "mocha": true
  },
  "rules": {
    "new-cap": [2, { "capIsNewExceptions": ["List", "Map", "Set"] }],
    "react/no-multi-comp": 0,
    "import/default": 0,
    "import/no-duplicates": 0,
    "import/named": 0,
    "import/namespace": 0,
    "import/no-unresolved": 0,
    "import/no-named-as-default": 2,
    "comma-dangle": 0,  // not sure why airbnb turned this on. gross!
    "indent": [2, 2, {"SwitchCase": 1}],
    "no-console": 0,
    "no-alert": 0,
    "linebreak-style": 0
  },
  "plugins": [
    "react", "import"
  ],
  "settings": {
    "import/parser": "babel-eslint",
    "import/resolve": {
      "moduleDirectory": ["node_modules", "src"]
    }
  },
  "globals": {
    "__DEVELOPMENT__": true,
    "__CLIENT__": true,
    "__SERVER__": true,
    "__DISABLE_SSR__": true,
    "__DEVTOOLS__": true,
    "socket": true,
    "webpackIsomorphicTools": true
  }
}

不幸的是,当lint一个.js文件中包含React JSX代码时,我遇到了以下错误:

 error  JSX not allowed in files with extension '.js'              react/jsx-filename-extension

如前所述,eslint config airbnb是否已配置为响应支持JSX?

应该做些什么来消除这个错误?

共有3个答案

李建中
2023-03-14

对你没用就叫我笨蛋

    "rules": {
        "react/jsx-filename-extension": [0],
        "import/extensions": "off"
    }
杜昆琦
2023-03-14

这是我的工作。希望能帮助你。

>

  • . eslintrc中禁用jsx-filename扩展:

    “规则”:{“react/jsx文件扩展名”:[0]}

    webpack.config.js中:

    解析:{扩展:['. js','. jsx']},

  • 仰城
    2023-03-14

    如上所述,将文件扩展名更改为. jsx,或者禁用jsx-filename-扩展名规则。您可以将以下内容添加到您的配置中,以允许JSX的. js扩展。

    "rules": {
      "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
    }
    
     类似资料:
    • 问题内容: 我已经安装了eslint-config- airbnb ,它应该为React预配置ESLINT: 我们的默认导出包含我们所有的ESLint规则,包括ECMAScript 6+和React。它需要eslint,eslint-plugin- import,eslint-plugin-react和eslint-plugin-jsx-a11y。 我扩展了它的配置: 不幸的是,当我在其中插入带有

    • 我开始使用反应作为我的UI框架的选择。在我冒险通过留档时,我注意到,当使用脚本来旋转一个新的反应样板时,他们在返回代码的脚本上使用了文件扩展名。当我问我的朋友时,他告诉我你应该在返回这种代码的脚本上使用扩展。 我在这里有点不知所措,好像两者都能起作用,使用扩展在一天结束时,我们正在编写它的javascript。 请帮助我什么是被认为是最好的练习。(我有一种感觉,在这些类型的脚本上使用扩展,但是我很

    • 问题内容: 我使用 browserify 和 watchify ,并希望不是默认的扩展名的其他文件,并没有指定扩展名,比如: 我已经尝试按照 browserify 文档中的指定进行操作: 但是我看不到任何变化。这可能吗?正确的方法是什么? 问题答案: 编辑 (2015年4月27日):我刚刚注意到在问题中,我有一个无效的参数,例如: 应该是(请注意中的(点)): 原始答案 : 添加的选项,这样做是为

    • 我使用的浏览器和Watchify,并希望文件以外的默认扩展名和没有指定的扩展名,例如: 我已经尝试了,如浏览器留档中指定的: 然而,我没有看到任何变化。这有可能吗?做这件事的正确方法是什么?

    • 问题内容: 我有这个PHP代码: 如果我有一个名为的文件,则此函数返回。 我想做相反的事情,我希望函数不带扩展名就返回。 该文件只是变量中的字符串。 问题答案: 不需要所有这些。签出pathinfo() ,它为您提供了路径的所有组件。 手册中的示例: 代码输出: 或者,您只能获得某些部分,例如:

    • 问题内容: 设法将我的文件存储在一个文件夹中,但是没有文件扩展名。 有谁知道我将如何存储带有文件扩展名的文件? 问题答案: 从文档中:“ Multer不会为您添加任何文件扩展名,您的函数应返回带有文件扩展名的文件名。” 添加扩展名的方法如下: 我建议使用该属性来确定扩展名。例如: 更多信息:https://github.com/expressjs/multer