@clevercloud/eslint-config
ESLint configuration package for Clever Cloud JavaScript projects, providing standardized linting rules and configurations for modern JavaScript development.
đŚ Installation
npm install --save-dev @clevercloud/eslint-config
đ Usage
This package provides two main configurations optimized for different environments:
Browser Configuration
For client-side JavaScript applications:
import { cleverCloud } from '@clevercloud/eslint-config';
import globals from 'globals';
export default [
{
...cleverCloud.configs.browser,
files: ['src/**/*.js'],
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
globals: {
...globals.browser,
}
}
}
];
Node.js Configuration
For server-side JavaScript applications:
import { cleverCloud } from '@clevercloud/eslint-config';
import globals from 'globals';
export default [
{
...cleverCloud.configs.node,
files: ['**/*.js'],
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
globals: {
...globals.node,
}
}
}
];
Mixed Environment
For projects with both browser and Node.js code:
import { cleverCloud } from '@clevercloud/eslint-config';
import globals from 'globals';
export default [
{
...cleverCloud.configs.node,
files: ['server/**/*.js', 'scripts/**/*.js'],
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
globals: {
...globals.node,
}
},
},
{
...cleverCloud.configs.browser,
files: ['client/**/*.js', 'public/**/*.js'],
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
globals: {
...globals.browser,
}
}
}
];
đ§ Configuration Details
Browser Configuration Features
- Base Rules: ESLint recommended rules
- Import Management: Enforces proper import/export usage
- Code Quality: Ensures consistent coding standards
- Modern JavaScript: Supports ES2022+ features
Node.js Configuration Features
- All Browser Features: Includes all browser configuration rules
- Node.js Specific: Optimized for Node.js environment
- Module System: Supports both CommonJS and ES modules
- Process Management: Allows
process.exit() usage
Key Rules Included
- Equality: Enforces strict equality (
===) except for null checks
- Camelcase: Enforces camelCase naming convention
- Curly Braces: Requires braces for all control statements
- Unused Variables: Allows underscore prefix for unused variables
- Import Extensions: Requires file extensions in import statements
- Import Order: Enforces import statement organization
- No Extraneous Dependencies: Prevents importing unlisted dependencies
đ ď¸ Customization
You can extend or override any rules:
import { cleverCloud } from '@clevercloud/eslint-config';
export default [
{
...cleverCloud.configs.node,
files: ['**/*.js'],
rules: {
'no-console': 'warn',
'camelcase': 'off',
'prefer-const': 'error',
}
}
];
đ Requirements
- ESLint: ^9.0.0 (peer dependency)
- Node.js: Compatible with modern Node.js versions
- JavaScript: Supports ES2022+ syntax
đ Included Plugins
- @eslint/js: Core ESLint recommended rules
- eslint-plugin-import-x: Import/export statement management
- eslint-plugin-n: Node.js specific rules (Node.js config only)