ESLint配置:如何强制项目仅允许新增*.ts、*.tsx类型文件?
解决方案:用ESLint强制新文件使用TypeScript扩展名
你可以通过eslint-plugin-filename-rules结合自定义配置实现需求,虽然它侧重文件名模式,但也能精准控制扩展名规则:
1. 安装插件
先安装该依赖:
npm install eslint-plugin-filename-rules --save-dev
2. 配置ESLint规则
在你的.eslintrc.js(或.eslintrc)中添加以下配置:
module.exports = { plugins: ['filename-rules'], rules: { 'filename-rules/match': [ 'error', { // 限定仅允许ts/tsx扩展名 match: /\.(ts|tsx)$/, // 列出所有需要忽略的现有JS/JSX文件或目录 exclude: [ './src/old-app.js', './src/components/legacy-form.jsx', // 若旧文件集中在某目录,可使用通配符批量忽略 // './src/legacy-code/**/*.js', // './src/legacy-code/**/*.jsx' ] } ] } };
3. 额外优化建议
如果旧文件数量极多,也可将它们加入.eslintignore,但这会跳过这些文件的所有ESLint检查。若只想忽略扩展名规则,优先使用上述exclude配置更精准。
另外,也可尝试eslint-plugin-unicorn的filename-case规则配合自定义模式,但filename-rules的配置更直接贴合你的扩展名管控需求。
内容的提问来源于stack exchange,提问作者Frappuccino
相关产品推荐
相关产品推荐

