@s-ui/lint
Linting CLI for sui packages
Last updated 19 days ago by schibstedspain .
MIT · Original npm · Tarball · package.json
$ cnpm install @s-ui/lint 
SYNC missed versions from official npm registry.

sui-lint

CLI to lint your code and make it compliant.

It provides:

  • Same js and sass style of code across all company.
  • Linting rules a reference package, not duplicated linting config in every project.
  • Implemented as a reusable CLI.

Installation

$ npm install @s-ui/lint --save-dev

CLI

When installed, a new CLI sui-lint is automatically available to lint your files according to SUI conventions.

Lint JS files

$ sui-lint js [options]

It lints all js|jsx files in your project, excluding .eslintignore and .gitignore file patterns.

Same options available in eslint except one: -c, --config. If you try to use this option, an exception will be thrown.

Format JS files

$ sui-lint js --fix [options]

Lint SASS files

$ sui-lint sass [options]

Lints all **/src/**/*.scss files in the project, excluding node_modules, lib, dist.

To change the default pattern you can use the flag --pattern:

example:

$ sui-lint sass --pattern ./widgets/**/*.scss

.gitignore file patterns are also excluded but interpretation may differ as only glob patterns are understood

Scope commands to staged files

$ sui-lint js --staged
$ sui-lint js --fix --staged
$ sui-lint sass --staged

Same command but applied only on staged files (obtained with git diff --cached --name-only --diff-filter=d command).

For integrations, prettier config is located in @s-ui/lint/.prettierrc.js.

Add fixes to the stage

$ sui-lint js --staged --add-fixes
$ sui-lint js --fix --staged --add-fixes

This option can only be used with --staged.

In fix mode like with sui-lint js --fix, the --add-fixes option will stage the files again (git add <file...>)

It's usefull to make your code autoformat before any commit.

IDE integration

Steps to integrate sui-lint with an IDE:

  1. Install (if needed) eslint/stylelint/prettier plugins in your IDE. For example, for Visual Studio Code, the recommended ones are:

  2. After install the package, it will add automatically the needed configuration to your package.json file. If not, make sure you add these lines:

{
  "eslintConfig": {
    "extends": [
      "./node_modules/@s-ui/lint/eslintrc.js"
    ]
  },
  "stylelint": {
    "extends": "./node_modules/@s-ui/lint/stylelint.config.js"
  },
  "prettier": "./node_modules/@s-ui/lint/.prettierrc.js"
}

Example package.json

{
  "name": "test-project",
  "version": "1.0.0",
  "scripts": {
    "lint": "npm run lint:js && npm run lint:sass",
    "lint:js": "sui-lint js",
    "lint:sass": "sui-lint sass"
  },
  "devDependencies": {
    "@s-ui/lint": "3"
  },
  "eslintConfig": {
    "extends": [
      "./node_modules/@s-ui/lint/eslintrc.js"
    ]
  },
  "stylelint": {
    "extends": "./node_modules/@s-ui/lint/stylelint.config.js"
  },
  "prettier": "./node_modules/@s-ui/lint/.prettierrc.js"
}

Visual Studio Code and Prettier integration

Prettier is integrated in sui-lint with some specific rules. If you want VSCode to format your code exactly as sui-lint js --fix would do, keep reading:

prettier + eslint + stylelint = ????

CMD + Shift + P -> Preferences: Open Settings (JSON).

Add the next config to your preferences:

{
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[scss]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
    "source.fixAll.stylelint": true
  }
}

It will format and fix the problems of linter on saving. If you prefer to do this manually, you could avoid adding the eslint.autoFixOnSave and editor.formatOnSave configs.

Current Tags

  • 3.13.0-beta.4                                ...           beta (6 months ago)
  • 3.15.0                                ...           latest (19 days ago)

47 Versions

  • 3.15.0                                ...           19 days ago
  • 3.14.0                                ...           6 months ago
  • 3.13.0                                ...           6 months ago
  • 3.13.0-beta.4                                ...           6 months ago
  • 3.13.0-beta.3                                ...           6 months ago
  • 3.13.0-beta.2                                ...           6 months ago
  • 3.13.0-beta.1                                ...           6 months ago
  • 3.13.0-beta.0                                ...           6 months ago
  • 3.12.0                                ...           6 months ago
  • 3.11.0                                ...           8 months ago
  • 3.10.0                                ...           8 months ago
  • 3.9.0                                ...           9 months ago
  • 3.8.0                                ...           9 months ago
  • 3.7.0                                ...           10 months ago
  • 3.6.0                                ...           10 months ago
  • 3.5.0-beta.0                                ...           10 months ago
  • 3.5.0                                ...           10 months ago
  • 3.4.0                                ...           10 months ago
  • 3.3.0                                ...           10 months ago
  • 3.2.0                                ...           10 months ago
  • 3.1.0                                ...           10 months ago
  • 3.0.0-beta.0                                ...           10 months ago
  • 3.0.0                                ...           10 months ago
  • 2.25.1                                ...           10 months ago
  • 2.25.0                                ...           10 months ago
  • 2.24.0                                ...           a year ago
  • 2.23.0                                ...           a year ago
  • 2.22.0                                ...           a year ago
  • 2.21.0                                ...           a year ago
  • 2.20.0                                ...           2 years ago
  • 2.19.0                                ...           2 years ago
  • 2.18.0                                ...           2 years ago
  • 2.17.1                                ...           2 years ago
  • 2.18.0-beta.0                                ...           2 years ago
  • 2.16.0                                ...           2 years ago
  • 2.15.0                                ...           2 years ago
  • 2.14.0                                ...           2 years ago
  • 2.13.0                                ...           2 years ago
  • 2.12.0                                ...           2 years ago
  • 2.11.0                                ...           2 years ago
  • 2.10.0                                ...           2 years ago
  • 2.9.0                                ...           2 years ago
  • 2.8.0                                ...           2 years ago
  • 2.7.0                                ...           2 years ago
  • 2.6.0                                ...           2 years ago
  • 2.5.0                                ...           2 years ago
  • 2.4.0                                ...           3 years ago

Copyright 2014 - 2017 © taobao.org |