@boltz.one/eslint-config
v0.1.1
Published
ESLint config dùng chung cho monorepo Boltz One: base, next-js, react-internal
Readme
@boltz.one/eslint-config
Bộ ESLint config (flat config, ESLint v9+) dùng chung cho hệ sinh thái Boltz One.
Đóng gói sẵn các plugin và rule thống nhất cho TypeScript, React, Next.js và
Turborepo nên app/lib tiêu thụ chỉ cần extends một dòng.
Cài đặt
bun add -d @boltz.one/eslint-config eslint typescript
# hoặc: npm i -D @boltz.one/eslint-config eslint typescripteslint và typescript được khai báo là peerDependencies (consumer tự cài).
Toàn bộ plugin (typescript-eslint, eslint-plugin-react, @next/eslint-plugin-next, …)
đã là dependencies của package nên được cài tự động — không cần khai báo thủ công.
Các config khả dụng
| Entry point | Export | Dùng cho |
| --- | --- | --- |
| @boltz.one/eslint-config/base | config | Mọi package TypeScript (Node/library). Nền tảng cho 2 config còn lại. |
| @boltz.one/eslint-config/react-internal | config | Thư viện/app React (không phải Next.js). |
| @boltz.one/eslint-config/next-js | nextJsConfig | App Next.js. |
base
@eslint/jsrecommended +typescript-eslintrecommended.eslint-config-prettier(tắt các rule format xung đột với Prettier).eslint-plugin-turbo: cảnh báo biến môi trường chưa khai báo trongturbo.json.eslint-plugin-only-warn: hạ mọi lỗi xuống mứcwarnđể DX mượt hơn.@typescript-eslint/no-unused-vars: bỏ qua biến/tham số/error có tiền tố_.- Bỏ qua
dist/**.
react-internal
Kế thừa base và bổ sung: eslint-plugin-react (flat recommended),
eslint-plugin-react-hooks, globals browser + serviceworker, tắt
react/react-in-jsx-scope và react/no-unescaped-entities.
next-js
Kế thừa base và bổ sung cấu hình React + @next/eslint-plugin-next
(recommended + core-web-vitals), globals serviceworker, ignore mặc định của
Next (.next/**, out/**, build/**, next-env.d.ts).
Sử dụng
ESLint v9 dùng flat config. Tạo eslint.config.js (hoặc .mjs) ở gốc package.
Package Node / library:
import { config } from "@boltz.one/eslint-config/base";
/** @type {import("eslint").Linter.Config[]} */
export default config;Thư viện / app React:
import { config } from "@boltz.one/eslint-config/react-internal";
/** @type {import("eslint").Linter.Config[]} */
export default config;App Next.js:
import { nextJsConfig } from "@boltz.one/eslint-config/next-js";
/** @type {import("eslint").Linter.Config[]} */
export default nextJsConfig;Có thể nối thêm rule riêng:
import { config } from "@boltz.one/eslint-config/base";
export default [
...config,
{
rules: {
"no-console": "warn",
},
},
];Script gợi ý
{
"scripts": {
"lint": "eslint . --max-warnings 0"
}
}License
MIT
