eslint-config-aftership v7.0.0
eslint-config-aftership
This is for node 10 or above only.
Please check legacy tags for previous version of node runtime support.
AfterShip ESLint config (modified from eslint-config-airbnb)
following Airbnb JavaScript Style Guide commit a12dec90d173464a3fc4e4536b8c6f639fb93236
Rules that cannot be checked by ESLint (Backend only)
- Use
camelCase
for files and folders if possible (exceptions could be made in some special cases) - Use
camelCase
when namingfunctions
- Use
PascalCase
when namingclass variables
Use
camelCase
when namingvariables
`const name = 'John';`, `const emailAddress = 'john@gmail.com';`
Use
SNAKE_UPPERCASE
when namingconstant variables
but no need forrequired module
`const USER = 'John';`, `const DEFAULT_EMAIL = 'john@gmail.com';`
Use
const
forrequired module
`const fs = require('fs');`
Use JSDoc for documentation. Guidelines Here
When constructing class for
module.exports
, create it as follows:```javascript 'use strict'; // Declare imports // Class class Example { constructor() { } exampleFunction1() { } ... } module.exports = Example; ```
Why we choose these ESLint rules?
See here
Versioning
We follow semver for the versioning strategy.
Major version indicates the eslint major version
Minor version indicates adding rules/options (more strict)
Path version indicates removing rules/options (more loose)
Installation
As we support frontend and backend project at the same time, please refer to the following guide for all optional dependencies.
on your repository:
If you are
AfterShip
member,grunt-init-node
already installed it for youIf you are not or you want to install in the existing repository: 1.
npm install --save-dev eslint-config-aftership eslint eslint-plugin-import
2. Keep the `^` in the `package.json` for `eslint-config-aftership`, if the project is still in development. Replace the `^` with `~` if you want to prevent new rules which may brother you in travis. 3. Create a `.eslintrc` in the project root ```json { "extends": "aftership" } ``` If your repo is a **React** project using webpack.js, you should extends `aftership/react`, and install additional packages ```bash npm install eslint-plugin-html eslint-plugin-react eslint-plugin-jsx-a11y babel-eslint eslint-import-resolver-webpack ``` ```json { "extends": "aftership/react", "settings": { "import/resolver": { "webpack": { "config": "webpack.config.js" } } } ``` If your repo is a **Vue** project using webpack, you should extends `aftership/vue`, and install additional packages ```bash npm install eslint-plugin-html eslint-plugin-vue babel-eslint vue-eslint-parser eslint-import-resolver-webpack ``` ```json { "extends": "aftership/vue", "settings": { "import/resolver": { "webpack": { "config": "webpack.config.js" } } } ``` 4. Add it to `npm test` so that `travis` can test it for us, for example: `package.json`: ```json { "scripts": { "lint": "eslint --ext .{jsx|vue},.js ." } } ``` `travis.yml`: ```yml install: - npm install script: - npm run lint ```
on your editor:
If the repository doesn't have
eslint
installed, you can install it as global packagenpm install -g eslint-config-aftership
Create a
.eslintrc
in$HOME
```json { "extends": "aftership" } ```
For
Atom
:- Install in terminal by
apm install linter linter-eslint
- If you want to use global eslint,
Preference
->Packages
->linter-eslint
-> checkUse Global ESLint
- Install in terminal by
For
PhpStorm
:Languages & Frameworks
->JavaScript
-> chooseECMAScript 6
forJavaScript language version
Preference
->Plugins
-> clickBrowse repositories...
-> searchESLint
-> clickInstall plugin
Preference
->Languages & Frameworks
->JavaScript
->Code Quality Tools
->ESLint
-> checkEnable
For
Sublime Text 3
:if you are using
nvm
, add the following script to~/.bash_profile
or~/.zshenv
(check which shell you are using in SYSTEM DEFAULT (not the same as terminal default) byecho $SHELL
)```bash if hash brew 2> /dev/null && [[ -d "$(brew --prefix nvm)" ]]; then export NVM_DIR="$(brew --prefix nvm)" else export NVM_DIR="$HOME/.nvm" fi if [[ -s "$NVM_DIR/nvm.sh" ]]; then source "$NVM_DIR/nvm.sh" fi ``` remove the corresponding `nvm` loading script in `.bashrc` or `.zshrc`
Install Package Control
- Install
SublimeLinter
andSublimeLinter-contrib-eslint
byPackage Control
- Restart
Sublime Text 3
- Restart computer if ESLint is not working
For
vim
orneovim
:neovim
is preferred overvim
, asneovim
can load plugin asynchronously, which highly improve performance when linting with ESLint- Install benekastah/neomake by any plugin manager, such as vim-plug
Add the following lines to
~/.vimrc
(vim
) or~/.config/nvim/init.vim
(neovim
)``` autocmd BufWrite * :Neomake let g:neomake_javascript_enabled_makers= ['eslint'] " load local eslint in the project root " modified from https://github.com/mtscout6/syntastic-local-eslint.vim let s:eslint_path = system('PATH=$(npm bin):$PATH && which eslint') let g:neomake_javascript_eslint_exe = substitute(s:eslint_path, '^\n*\s*\(.\{-}\)\n*\s*$', '\1', '') ```
License
Copyright (c) 2020 AfterShip
Licensed under the MIT license.
5 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago