{"id":10820,"library":"eslint-config-semistandard","title":"ESLint Semistandard Style Config","description":"`eslint-config-semistandard` provides an ESLint shareable configuration that enforces the JavaScript Semistandard Style. This style is a direct derivative of JavaScript Standard Style, with the key distinction of requiring semicolons at the end of statements, addressing a common preference among developers. Currently at version 17.0.0, the package maintains a close release cadence with `eslint-config-standard`, its upstream dependency, typically updating its major version whenever `eslint-config-standard` does. Its primary differentiator is this explicit support for semicolons, offering a pre-configured, opinionated linting setup for projects that value code consistency without the need to define a multitude of individual ESLint rules. This makes it an efficient choice for quick project setup while adhering to a widely recognized JavaScript style guide.","status":"active","version":"17.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/standard/eslint-config-semistandard","tags":["javascript","JavaScript Standard Style","check","checker","code","code checker","code linter","code standards","code style"],"install":[{"cmd":"npm install eslint-config-semistandard","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-semistandard","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-semistandard","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core ESLint engine, required to run linting.","package":"eslint","optional":false},{"reason":"This package extends `eslint-config-standard`, inheriting most of its rules.","package":"eslint-config-standard","optional":false},{"reason":"Provides linting rules for ES2015+ import/export syntax.","package":"eslint-plugin-import","optional":false},{"reason":"Provides Node.js specific ESLint rules.","package":"eslint-plugin-n","optional":false},{"reason":"Provides ESLint rules for best practices around Promises.","package":"eslint-plugin-promise","optional":false}],"imports":[{"note":"This package provides an ESLint shareable configuration. It is referenced as a string within the `extends` array of your ESLint configuration file (e.g., `.eslintrc.json` or `.eslintrc.js`), not imported as a JavaScript module.","wrong":"import semistandard from 'eslint-config-semistandard';","symbol":"semistandard","correct":"{ \"extends\": \"semistandard\" }"}],"quickstart":{"code":"npm install --save-dev eslint eslint-config-semistandard eslint-plugin-import eslint-plugin-n eslint-plugin-promise eslint-config-standard\n\n// .eslintrc.json\n{\n  \"extends\": \"semistandard\",\n  \"env\": {\n    \"browser\": true,\n    \"node\": true,\n    \"es2021\": true\n  }\n}\n\n// index.js (example file to lint)\nconst path = require('path');\n\nconst greet = (name) => {\n  console.log(`Hello, ${name}!`);\n};\n\ngreet('World');\n\n// Linting this file will enforce semicolon usage and other semistandard rules.\n// For example, missing semicolons will be reported.\n// To run: `npx eslint index.js`","lang":"javascript","description":"Installs `eslint-config-semistandard` along with all necessary peer dependencies, then shows how to configure an `.eslintrc.json` file to extend the `semistandard` configuration, and provides a simple JavaScript file to demonstrate its application."},"warnings":[{"fix":"Update `eslint-config-standard` to version `^16.0.0` or higher, compatible with `eslint-config-semistandard` v16.x. Review the `eslint-config-standard` changelog for specific rule changes.","message":"Version 16.0.0 was a breaking change, updating its base to `eslint-config-standard` version 16.x. Projects upgrading from older versions must also ensure their `eslint-config-standard` peer dependency is updated accordingly and review for any rule changes introduced by `standard`.","severity":"breaking","affected_versions":">=16.0.0 <17.0.0"},{"fix":"Rename your ESLint configuration file from `.eslintrc.js` to `.eslintrc.json` if you are using an older JavaScript-based config, or update your build tools/IDE to recognize the new `.eslintrc.json` filename.","message":"With version 16.0.0, the recommended ESLint configuration filename was changed from `.eslintrc.js` to `eslintrc.json` to align with `eslint-config-standard` practices. While `.eslintrc.js` might still work, using `.eslintrc.json` is the new standard.","severity":"breaking","affected_versions":">=16.0.0"},{"fix":"Ensure `eslint-config-standard` is installed at version `^17.0.0`. Review the changelog for `eslint-config-standard` v17.0.0 for details on any new rules or modifications that might affect your codebase.","message":"Version 17.0.0 is based on `eslint-config-standard` version 17.0.0. This implies potential breaking changes or new rules inherited from the upstream `standard` configuration. All peer dependencies, especially `eslint-config-standard`, must be updated to their compatible major versions.","severity":"breaking","affected_versions":">=17.0.0"},{"fix":"Always install all listed peer dependencies alongside `eslint-config-semistandard` at compatible versions. Use `npm info eslint-config-semistandard peerDependencies` to check current requirements, and `npm install --save-dev [all-peer-deps]`.","message":"This package, like many ESLint shareable configs, relies on several peer dependencies (e.g., `eslint`, `eslint-config-standard`, `eslint-plugin-import`). Failing to install these explicitly, or installing incompatible versions, will lead to errors.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-19T00:00:00.000Z","next_check":"2026-07-18T00:00:00.000Z","problems":[{"fix":"Ensure `eslint-config-semistandard` is installed: `npm install --save-dev eslint-config-semistandard`.","cause":"The `eslint-config-semistandard` package is not installed or not resolvable by ESLint.","error":"Error: Failed to load config 'semistandard' to extend from."},{"fix":"Check the `peerDependencies` of `eslint-config-semistandard` and `eslint-config-standard` (e.g., `npm info eslint-config-semistandard peerDependencies`) and install a compatible `eslint` version, typically `npm install --save-dev eslint@^8.13.0` for recent versions.","cause":"The installed ESLint version is not compatible with the `eslint-config-semistandard` or its base `eslint-config-standard` package's peer dependency requirements.","error":"ESLint: The 'extends' property in your ESLint configuration specifies a configuration that is incompatible with your current ESLint version."},{"fix":"Install all necessary peer dependencies at their specified versions: `npm install --save-dev eslint-plugin-import@^2.26.0 eslint-plugin-n@^15.0.0 eslint-plugin-promise@^6.0.0`.","cause":"One or more of the required ESLint plugins (e.g., `eslint-plugin-promise`, `eslint-plugin-import`, `eslint-plugin-n`) are missing or an incompatible version is installed.","error":"ESLint: Rule 'promise/always-return' is not found."}],"ecosystem":"npm"}