@babel 下的 eslint-parser

发布于 2024-10-24 08:10:19 字数 1314 浏览 11 评论 0

eslint 默认 parser

只转换 js,默认支持 ES5 的语法,可以通过制定 parserOptions 给 Espree 传递如下选项

ESLint 官方文档中的 parserOptions 只适用 Espree 解析器

"parserOptions": {
   "ecmaVersion": 6,
   "sourceType": "module",
   "ecmaFeatures": {
      "jsx": true
    }
}

ecmaVersion 可以开启更高 ES 版本的校验(已加入 ES 标准的语法,不包括实验性的语法)
但需要注意的是一些新标准中的语法对 ESLint 的版本也有要求,如果发现 ESLint 不支持校验,可能需要升级 ESLint 版本

@babel/eslint-parser

ESLint 的默认解析器和核心规则仅支持最新的最终 ECMAScript 标准,
不支持 Babel 提供的实验性(例如新功能)和非标准(例如 Flow 或 TypeScript 类型)语法。
@babel/eslint-parser 是允许 ESLint 在由 Babel 转换的源代码上运行的解析器

  • 该 parser 允许你使用 ESLint 校验所有 babel code
  • 如果你使用该解析器,还要使用 babel
  • 当你使用 babel 时,babel 的解析器会把你的 code 转换为 AST,该解析器会将其转换为 ESLint 能懂的 ESTree
  • 该 praser 的 parserOptions 默认配置如下
    module.exports = {
    parser: "@babel/eslint-parser",
    parserOptions: {
     requireConfigFile: true, // 是否需要 babel 配置文件
     sourceType: "module", // script 或者 module
     allowImportExportEverywhere: false, // 设置为 true,import 和 export 声明 可以出现在文件的任务位置,否则只能出现在顶部
     ecmaFeatures: {
       globalReturn: false, // 设置为 true,当 sourceType 为 script 时,允许全局 return
     },
     babelOptions: {
       configFile: "path/to/config.js", // babel 的配置文件,可以不传
     },
    },
    }
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

我爱人

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

杨绘峰

文章 0 评论 0

听闻余生

文章 0 评论 0

谜兔

文章 0 评论 0

xiaotwins

文章 0 评论 0

你说

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文