{"id":14978335,"url":"https://github.com/fullstackacademy/eslint-config-fullstack","last_synced_at":"2025-10-28T08:32:11.531Z","repository":{"id":57228216,"uuid":"61062145","full_name":"FullstackAcademy/eslint-config-fullstack","owner":"FullstackAcademy","description":"A complete ESLint config file to help students avoid errors and learn best practices","archived":false,"fork":false,"pushed_at":"2020-05-29T04:48:49.000Z","size":2732,"stargazers_count":16,"open_issues_count":11,"forks_count":26,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-02-01T13:34:56.351Z","etag":null,"topics":["best-practices","eslint","eslint-config","eslint-rules","eslint-shareable-configs","eslintconfig","eslintrc","fullstack-academy","students"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FullstackAcademy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-13T19:01:40.000Z","updated_at":"2023-02-15T11:46:49.000Z","dependencies_parsed_at":"2022-09-04T15:05:05.236Z","dependency_job_id":null,"html_url":"https://github.com/FullstackAcademy/eslint-config-fullstack","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullstackAcademy%2Feslint-config-fullstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullstackAcademy%2Feslint-config-fullstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullstackAcademy%2Feslint-config-fullstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullstackAcademy%2Feslint-config-fullstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FullstackAcademy","download_url":"https://codeload.github.com/FullstackAcademy/eslint-config-fullstack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238623544,"owners_count":19503057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-practices","eslint","eslint-config","eslint-rules","eslint-shareable-configs","eslintconfig","eslintrc","fullstack-academy","students"],"created_at":"2024-09-24T13:57:25.938Z","updated_at":"2025-10-28T08:32:11.188Z","avatar_url":"https://github.com/FullstackAcademy.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://learndotresources.s3.amazonaws.com/workshop/570bdee44a306c0300b78b52/eslint-fullstack.jpg\" align=\"right\"\u003e\n\n# `eslint-config-fullstack`\n\n[![Built at Fullstack Academy](https://img.shields.io/badge/built%20at-Fullstack%20Academy-green.svg)](http://www.fullstackacademy.com)\n[![npm version](https://img.shields.io/npm/v/eslint-config-fullstack.svg?maxAge=3600)](https://www.npmjs.com/package/eslint-config-fullstack)\n[![Build Status](https://travis-ci.org/FullstackAcademy/eslint-config-fullstack.svg?branch=master)](https://travis-ci.org/FullstackAcademy/eslint-config-fullstack)\n[![Greenkeeper badge](https://badges.greenkeeper.io/FullstackAcademy/eslint-config-fullstack.svg)](https://greenkeeper.io/)\n\n### An ESLint [Shareable Config](http://eslint.org/docs/developer-guide/shareable-configs) for [Fullstack Education Group](http://www.fullstackacademy.com/) Students\n\n## Installation\n\n### Global\n\nGlobal installation is recommended for [Fullstack Education Group](http://www.fullstackacademy.com/) students. To install or upgrade the config along with its peer dependencies:\n\n```sh\nnpm install -g eslint eslint-config-fullstack eslint-plugin-react babel-eslint\n```\n\nIn your global `~/.eslintrc.json` file:\n\n```json\n{\n    \"extends\": \"fullstack\"\n}\n```\n\nNote that the `eslint-config-` portion of the module name is assumed by ESLint.\n\n### Local\n\nA specific project can extend this definition by including `eslint eslint-config-fullstack eslint-plugin-react babel-eslint` as saved dev-dependencies, and defining a local `.eslintrc.json`. Project-level eslintrc files are recommended to be set as `root`, which prevents users' global configs from producing inconsistent results:\n\n```json\n{\n    \"extends\": \"fullstack\",\n    \"root\": true\n}\n```\n\n### Note on Parsing\n\nThis config now uses `babel-eslint` as the parser by default. This enables linting some relatively modern code which ESLint's default parser does not handle, and was necessary for this project to lint itself. You still need to install `babel-eslint` manually as it is a peer dependency of this config.\n\n## Extending\n\nAny [rules](http://eslint.org/docs/rules/) added to your global or local `.eslintrc.json` files will override the rules defined by this package. For example:\n\n```json\n{\n    \"extends\": \"fullstack\",\n    \"rules\": {\n        \"semi\": [1, \"always\"]\n    }\n}\n```\n\nThis turns on enforcing the use of semicolons, a rule which is silenced by default in the current version of the `eslint-config-fullstack` package.\n\n## Background\n\nThe [ESLint](http://http://eslint.org/) linting system is a popular one for its support of ES6 syntax, pluggable [rules](http://eslint.org/docs/rules/), automatic rule names in warning messages, and [shareable](http://eslint.org/docs/developer-guide/shareable-configs) / [extendable](http://eslint.org/docs/user-guide/configuring#extending-configuration-files) config files.\n\nThis npm package provides a thorough starting config file. It was developed at [Fullstack Academy of Code / Grace Hopper Academy](http://www.fullstackacademy.com/) to use in an educational setting, helping students to avoid definite errors but also pick up best practices.\n\nBecause it defaults to supporting multiple environments (e.g. Node, browsers, Jasmine, Mocha, etc.) it is probably not suitable for general production, where one might want a finer-grained and more restrictive config. However it is easy to override and extend this base config with custom rules, [as explained above and in the ESLint docs](http://eslint.org/docs/user-guide/configuring#using-a-shareable-configuration-package).\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullstackacademy%2Feslint-config-fullstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffullstackacademy%2Feslint-config-fullstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullstackacademy%2Feslint-config-fullstack/lists"}