ESlint:在未转译的 ES5 代码库中突出显示 ES6 代码
Posted
技术标签:
【中文标题】ESlint:在未转译的 ES5 代码库中突出显示 ES6 代码【英文标题】:ESlint: Highlighting ES6 code in an non-transpiled ES5 codebase 【发布时间】:2021-03-20 19:43:09 【问题描述】:我们目前的构建管道存在问题,导致我们的旧代码库的某些部分无法被转译。
为了向后兼容旧版浏览器,我们的部分代码库必须使用 ES5 编写。
我们遇到的问题是在这些遗留脚本中强制使用 ES5 代码。代码中有很多地方已经使用了 ES6 特性(let、const、解构、对象简写)。
添加 ecmaVersion 设置为 5 的 eslint 配置并不理想,因为解析器在达到 es6 功能时会抛出异常,随后意味着不会发生额外的文件 linting。所以你需要先解决所有 es6 类型的异常,然后才能选择。
目前我们无法对代码进行如此大规模的重构。由于某些部分仍在积极工作中。总而言之,它是一个sh*tshow。
我的问题是,除了构建一些突出 es6 功能的自定义 eslint 插件之外,还有其他我可能错过的解决方案吗?
【问题讨论】:
Is there an elegant way to tell eslint to ensure that we're not using any ES6 syntax / functions? 建议使用this package。答案没有投票,没有 cmets,甚至没有被接受,所以我非常犹豫是否建议它是重复的。 该插件运行良好。 【参考方案1】:根据@VLAZ的建议
https://github.com/nkt/eslint-plugin-es5
在 eslintrc 中使用以下配置:
"plugins": [
"es5"
]
完美地满足我们的需要。
【讨论】:
你能补充一些你是如何使用它的细节吗?很可能是您的配置。这将使答案对未来的访问者更有用。以上是关于ESlint:在未转译的 ES5 代码库中突出显示 ES6 代码的主要内容,如果未能解决你的问题,请参考以下文章
babel实践:真实gulp项目支持ES6转译ES5的跳坑指北
我如何知道在 jexcell javascript 库中突出显示了哪个单元格?