
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@itstandu/code-style
Advanced tools
Production-ready shared ESLint + Prettier configuration for JavaScript and TypeScript projects
Production-ready shared ESLint + Prettier configuration library for JavaScript and TypeScript projects.
require) and ES modules (import)eslint-plugin-simple-import-sorteslint-plugin-boundaries (opt-in only)Choose your package manager:
npm install -D @itstandu/code-style
pnpm add -D @itstandu/code-style
yarn add -D @itstandu/code-style
bun add -d @itstandu/code-style
Note:
node_modules (not in dependencies of this package).For pnpm users: You need to install Prettier plugins in your project:
pnpm add -D prettier @prettier/plugin-oxc @prettier/plugin-xml prettier-plugin-tailwindcss
For npm/yarn users: Plugins should work automatically, but if you encounter issues, install them explicitly:
# npm
npm install -D prettier @prettier/plugin-oxc @prettier/plugin-xml prettier-plugin-tailwindcss
# yarn
yarn add -D prettier @prettier/plugin-oxc @prettier/plugin-xml prettier-plugin-tailwindcss
The config automatically detects and only loads plugins that are available, so it won't crash if some are missing.
After installation, you only need to configure 2 files to get started:
Create eslint.config.js (CommonJS) or eslint.config.mjs (ES modules) in your project root:
CommonJS (eslint.config.js):
For TypeScript projects:
const codeStyle = require('@itstandu/code-style')
module.exports = [codeStyle.recommended, codeStyle.typescript, codeStyle.node]
For React/Next.js:
const codeStyle = require('@itstandu/code-style')
module.exports = [codeStyle.recommended, codeStyle.typescript, codeStyle.react]
// or codeStyle.next for Next.js
ES Modules (eslint.config.mjs):
For TypeScript projects:
import codeStyle from '@itstandu/code-style'
export default [codeStyle.recommended, codeStyle.typescript, codeStyle.node]
For React/Next.js:
import codeStyle from '@itstandu/code-style'
export default [codeStyle.recommended, codeStyle.typescript, codeStyle.react]
// or codeStyle.next for Next.js
CommonJS (.prettierrc.js or .prettierrc.cjs):
module.exports = require('@itstandu/code-style/prettier')
ES Modules (.prettierrc.mjs):
import prettierConfig from '@itstandu/code-style/prettier'
export default prettierConfig
Or add to package.json:
{
"prettier": "@itstandu/code-style/prettier"
}
That's it! You're ready to use ESLint and Prettier. Run npx eslint . and npx prettier --write . to test.
This package supports both CommonJS and ES modules:
require() and module.exports (works with .js files)import and export (works with .mjs files or "type": "module")The package automatically resolves to the correct format based on your import style.
CommonJS:
const codeStyle = require('@itstandu/code-style')
module.exports = [codeStyle.base, codeStyle.typescript, codeStyle.node]
ES Modules:
import codeStyle from '@itstandu/code-style'
export default [codeStyle.base, codeStyle.typescript, codeStyle.node]
CommonJS:
const codeStyle = require('@itstandu/code-style')
module.exports = [codeStyle.recommended, codeStyle.typescript, codeStyle.node]
ES Modules:
import codeStyle from '@itstandu/code-style'
export default [codeStyle.recommended, codeStyle.typescript, codeStyle.node]
CommonJS:
const codeStyle = require('@itstandu/code-style')
module.exports = [codeStyle.strict, codeStyle.typescript, codeStyle.node]
ES Modules:
import codeStyle from '@itstandu/code-style'
export default [codeStyle.strict, codeStyle.typescript, codeStyle.node]
codeStyle.reactcodeStyle.nextcodeStyle.vuecodeStyle.angularcodeStyle.nestSee Available Configs section for full list.
Add these scripts to your package.json for convenient formatting and linting:
{
"scripts": {
"format": "prettier --write .",
"format:check": "prettier --check .",
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}
Note: Prettier automatically formats all supported file types (JS/JSX, TS/TSX, JSON, CSS/SCSS/LESS, HTML, Markdown, YAML, GraphQL, Vue, SVG, etc.). Files listed in .prettierignore will be excluded.
Copy .prettierignore from this package to exclude common files:
cp node_modules/@itstandu/code-style/.prettierignore .prettierignore
Prettier automatically formats all common file types:
Built-in support:
.js, .jsx, .ts, .tsx, .mjs, .cjs.json, .jsonc.css, .scss, .sass, .less.html, .htm.md, .mdx.yaml, .yml.graphql, .gqlPlugin support (included):
.xml, .svg (via @prettier/plugin-xml).vue (built-in Prettier support)Critical Principle:
Sort import → ESLint. Prettier TUYỆT ĐỐI không làm việc này.
Why ESLint, not Prettier?
This package configuration:
simple-import-sort handles all import sortingResult: Clean separation of concerns, no conflicts, battle-tested approach.
This package ensures 100% Prettier coverage for all formatting:
eslint-config-prettierprettier-plugin-tailwindcss)For the best experience, configure your editor to format on save:
Add to your workspace .vscode/settings.json or user settings:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[scss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[less]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[graphql]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
What this does:
unused-imports/no-unused-imports)simple-import-sort/imports)Required extensions:
baseMinimal, safe defaults. Good starting point.
recommendedEnhanced safety rules while remaining practical. Recommended for most projects.
strictOpt-in preset with additional rules including:
eslint-plugin-unicorn (code quality)eslint-plugin-sonarjs (bug detection)eslint-plugin-boundaries (architecture enforcement, disabled by default)base - Base ESLint configurationjavascript - JavaScript supporttypescript - TypeScript supportnode - Node.js backend rulesreact - React framework rulesnext - Next.js framework rulesvue - Vue framework rulesangular - Angular framework rulesnest - NestJS framework rulesrecommended - Recommended presetstrict - Strict preset (opt-in)eslint-plugin-simple-import-sort for predictable sortingContributions are welcome! Please feel free to submit a Pull Request.
MIT
Made with ❤️ by @itstandu
FAQs
Production-ready shared ESLint + Prettier configuration for JavaScript and TypeScript projects
We found that @itstandu/code-style demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.