js-imports-sort
v1.2.0
Published
A simple script to sort Javascript imports the way I want
Downloads
77
Readme
js-imports-sort
A simple script to sort Javascript imports the way I want
Rules
Order
- No names (side-effect)
import "module"
- Everything
import * from "module"
- Defaults
import a from "module"
- Named
import { a, b } from "module"
Sorting
- The source is prioritized over the import
- Special characters comes first
- Numbers comes second
- Lowercase letters comes third
- Uppercase letters comes fourth
- In case an import contains both defaults and named, the defaults are prioritized and put first
Features
- Supports multiline imports
- Adds a newline between imports from different types
Limitations
- Doesn't work yet with
require()
syntax - Can't really sort the imports from a module (ex :
import {z, b}, s, a from "c"
becomesimport a, s, {b, z} from "c"
), due to how it perceives mixed imports - Doesn't support semicolons at the end of the import
- Doesn't support comments
- Doesn't deduplicate imports
- ESLint plugin not yet implemented
Example
import "@mdi/font/css/materialdesignicons.css"
import "vuetify/styles"
import * from "node:fs"
import js from "@eslint/js"
import vuetify, { transformAssetUrls } from "vite-plugin-vuetify"
import { defineNuxtPlugin } from "#app"
import { createVuetify } from "vuetify"
import {
en,
fr
} from "vuetify/locale"
Usage
Install the package
npm install js-imports-sort
- In a javascript file
import sortImports from "js-imports-sort"
const code = `
import { createVuetify } from "vuetify"
import js from "@eslint/js"
import vuetify, { transformAssetUrls } from "vite-plugin-vuetify"
import * from "node:fs"
import { defineNuxtPlugin } from "#app"
import "vuetify/styles"
import {
en,
fr
} from "vuetify/locale"
import "@mdi/font/css/materialdesignicons.css"
`
const sortedCode = sortImports(code)
console.log(sortedCode)
- In a shell
npx js-imports-sort@latest <file> -r
Params available :
-r
or--replace
: Replace the file content with the sorted imports-o <path>
or--output <path>
: Output the sorted imports in a different file. Have to be used with-r
-l
or--log
: Output the sorted imports in the console
At least one of -r
or -l
has to be used