A collection of configuration files containing prettier, eslint, stylelint for the Umi.js ecosystem
npx @tessl/cli install tessl/npm-umijs--fabric@4.0.0@umijs/fabric is a comprehensive collection of pre-configured linting and formatting configurations for JavaScript and TypeScript projects, specifically tailored for the Umi.js ecosystem. It provides ready-to-use ESLint, Prettier, and Stylelint configurations along with a CLI tool for commit message validation.
npm install @umijs/fabric --save-devImport individual configurations:
const fabric = require('@umijs/fabric');
// Access configurations
const eslintConfig = fabric.eslint; // Default ESLint config (softy)
const strictEslintConfig = fabric.strictEslint; // Strict ESLint config
const prettierConfig = fabric.prettier; // Prettier config
const stylelintConfig = fabric.stylelint; // Stylelint configDirect imports for specific configurations:
const eslintConfig = require('@umijs/fabric/dist/eslint');
const prettierConfig = require('@umijs/fabric/dist/prettier');
const stylelintConfig = require('@umijs/fabric/dist/stylelint');// .eslintrc.js
module.exports = {
extends: [require.resolve('@umijs/fabric/dist/eslint')],
rules: {
// your custom rules
},
};// .prettierrc.js
const fabric = require('@umijs/fabric');
module.exports = {
...fabric.prettier,
};// .stylelintrc.js
module.exports = {
extends: [require.resolve('@umijs/fabric/dist/stylelint')],
rules: {
// your custom rules
},
};# Validate commit messages (used in git hooks)
fabric verify-commit
# Show version
fabric --version
# Show help
fabric --help@umijs/fabric is structured around several key components:
Provides both strict and lenient ESLint configurations with React, TypeScript, and modern JavaScript support.
// Main configuration exports
interface FabricExports {
eslint: ESLintConfig; // Default (softy) configuration
strictEslint: ESLintConfig; // Strict configuration
default: ESLintConfig; // Alias for eslint
}
interface ESLintConfig {
extends: string[];
parser: string;
plugins: string[];
env: Record<string, boolean>;
rules: Record<string, any>;
settings: Record<string, any>;
overrides?: Array<{
files: string[];
parser?: string;
rules?: Record<string, any>;
extends?: string[];
}>;
parserOptions: {
ecmaFeatures: {
jsx: boolean;
};
babelOptions: {
presets: string[];
plugins: Array<string | [string, any]>;
};
requireConfigFile: boolean;
project?: string;
};
}Pre-configured Prettier settings optimized for Umi.js projects with specific formatting rules.
interface PrettierConfig {
singleQuote: boolean;
trailingComma: string;
printWidth: number;
proseWrap: string;
endOfLine: string;
overrides: Array<{
files: string;
options: {
parser: string;
};
}>;
}Comprehensive Stylelint configuration with CSS modules and SCSS/Less support.
interface StylelintConfig {
extends: string[];
plugins: string[];
rules: Record<string, any>;
overrides: Array<{
files: string[];
customSyntax: string;
}>;
ignoreFiles: string[];
}Command-line interface for commit message validation and package information.
# CLI commands and options
fabric verify-commit # Validate git commit messages
fabric --version # Display package version
fabric --help # Show help informationDISABLE_TYPE_AWAREGIT_PARAMS / HUSKY_GIT_PARAMSverify-commit command to read commit message content