Sharable ESLint Plugin for create-npm-package
Use npm or a compatibility tool to install.
npm install --save-dev eslint eslint-plugin-cnp
- Node.js v16.15.0 or newer versions.
- ESLint v8.41.0 or newer versions.
JSON .eslintrc
{
"plugins": ["cnp"],
"rules": {
"sppt/no-console": "error",
"sppt/declaration-array-type": "warn"
}
}
Write your config file such as .eslintrc.yml
.
plugins:
- sppt
rules:
sppt/no-console: error
See also Configuring ESLint.
-
cnp/recommended
... enables the recommended rules.
Rule ID | Description | |
---|---|---|
cnp/declaration-array-type | Add explicit type declarations for array variables whose type can not be inferred | ⭐️ |
cnp/no-console | Disallow console expressions | ✒️ |
cnp/only-import-export | Allow only import and export statements in index files | ⭐️ |
This plugin follows Semantic Versioning and ESLint's Semantic Versioning Policy.
Welcome your contribution!
See also ESLint Contribution Guide.
-
npm test
runs tests. -
npm run update
updates the package version. And it updatessrc/configs/recommended.ts
,lib/index.ts
, andREADME.md
's rule table. See also npm version CLI command. -
npm run add-rule <RULE_ID>
creates three files to add a new rule.
File Structure:
-
docs/rules/
is the directory to put documentation. -
src/rules/
is the directory to put rule definitions. -
scripts/
is the directory to put development scripts. -
tests/
is the directory to put tests forsrc/
. -
.eslintignore
and.eslintrc.js
are the configuration to lint this repository.
Dependencies:
This template uses Jest and GitHub Actions for tests, as same as ESLint itself. If you want to use other tools, customize it.
Development Tools:
-
npm run add-rule foo
command adds a rule definition. -
npm update
command updates the following stuff by themeta
property of rules:- the header of
docs/rules/*.md
. -
lib/configs/recommended.ts
file. -
lib/index.ts
file. - the rule table in
README.md
file.
- the header of
Below is an example of README.