1.9.6 • Published 5 months ago

extensionless v1.9.6

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

Node.js loader for import specifiers as file paths without extensions or as directory paths

 

Install:

npm i extensionless

 

Start node with one of the following flags added. If you're running on a version of node older than 20.6.0, use:

--experimental-loader=extensionless

or else, use the newer one instead:

--import=extensionless/register

 

You can now use import specifiers as file paths without extensions or as directory paths:

// imports from the first existing file in the candidates list as follows

import mod from './mod'
// ['./mod.js', './mod/index.js']

import mod from '../mod' assert {type: 'json'}
// ['../mod.json', '../mod/index.json']

import api from '/apps/api'
// ['/apps/api.js', '/apps/api/index.js']

import web from 'file:///apps/web'
// ['file:///apps/web.js', 'file:///apps/web/index.js']

 

To configure this module, add the field extensionless to your project's package.json:

"extensionless": {
  "lookFor": ["js", "mjs", "cjs"]
}
FieldDefault Value
lookFor["js"]

 

When it can be deduced from the specifier that its target is a directory, the resolver looks for only the index files:

// imports from the first existing file in the candidates list as follows

import cur from '.'
// ['./index.js']

import up from '..'
// ['../index.js']

import mod from './mod/'
// ['./mod/index.js']

import mod from '../mod/' assert {type: 'json'}
// ['../mod/index.json']

import api from '/apps/api/'
// ['/apps/api/index.js']

import web from 'file:///apps/web/'
// ['file:///apps/web/index.js']

 

This loader also adds support for Windows path resolution with which you can use forward or backward slashes as separators.

import mod from '.\\mod'
// ['./mod.js', './mod/index.js']

import mod from '..\\mod\\' assert {type: 'json'}
// ['../mod/index.json']

import api from 'C:/apps/api'
// ['/C:/apps/api.js', '/C:/apps/api/index.js']

import web from 'C:\\apps\\web\\'
// ['/C:/apps/web/index.js']
1.9.6

5 months ago

1.9.5

5 months ago

1.8.2

5 months ago

1.6.4

6 months ago

1.8.1

5 months ago

1.6.3

6 months ago

1.8.0

5 months ago

1.6.2

6 months ago

1.6.1

6 months ago

1.6.0

6 months ago

1.9.4

5 months ago

1.9.3

5 months ago

1.9.2

5 months ago

1.5.6

7 months ago

1.9.1

5 months ago

1.7.3

6 months ago

1.9.0

5 months ago

1.7.2

6 months ago

1.7.1

6 months ago

1.7.0

6 months ago

1.6.9

6 months ago

1.6.8

6 months ago

1.8.5

5 months ago

1.6.7

6 months ago

1.8.4

5 months ago

1.6.6

6 months ago

1.8.3

5 months ago

1.6.5

6 months ago

1.5.5

7 months ago

1.5.4

7 months ago

1.5.3

7 months ago

1.5.2

7 months ago

1.5.1

7 months ago

1.5.0

7 months ago

1.4.5

1 year ago

1.4.4

1 year ago

1.4.3

1 year ago

1.4.2

1 year ago

1.2.0

1 year ago

1.1.1

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.3.5

1 year ago

1.1.7

1 year ago

1.3.4

1 year ago

1.2.5

1 year ago

1.1.6

1 year ago

1.3.3

1 year ago

1.2.4

1 year ago

1.1.5

1 year ago

1.4.1

1 year ago

1.3.2

1 year ago

1.2.3

1 year ago

1.1.4

1 year ago

1.4.0

1 year ago

1.3.1

1 year ago

1.2.2

1 year ago

1.1.3

1 year ago

1.3.0

1 year ago

1.2.1

1 year ago

1.1.2

1 year ago

1.0.2

1 year ago

1.1.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

0.1.0

9 years ago