sindresorhus/eslint-plugin-unicorn

Rule proposal: Require extension for relative imports and re-exports

已關閉

#1,194 建立於 2021年4月20日

 (9 則留言) (12 個反應) (0 位負責人)JavaScript (468 個分叉)user submission
help wantednew rule

倉庫指標

星標
 (5,022 顆星)
PR 合併指標
 (平均合併 1天 16小時) (30 天內合併 399 個 PR)

描述

It would enforce using a .js extension for relative imports if it doesn't already have an extension.

We cannot auto-fix as we cannot know whether import foo from './foo'; refers to a file or directory.

This even applies to TypeScript, where you still need the .js extension even if you import other .ts files.

There's already the import/extensions rule, but that project is not very actively maintained, very buggy, and also it doesn't let us use .js extension for TypeScript files. I think it's worth adding this simple rule here.

This rule will not do anything about require() statements.

Fail

import foo from './foo';
export foo from './foo';
await import('./foo');

Pass

import foo from './foo.js';
export foo from './foo.js';
await import('./foo.js');
import foo from './foo.vue';

貢獻者指南