@viewar/config-eslint
ViewAR's shareable config for EsLint
Last updated 2 months ago by doubleu23 .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @viewar/config-eslint 
SYNC missed versions from official npm registry.

eslint-config-viewar

Build Status PRs Welcome
NPM Release Conventional Commits Semantic Versioning

Installation

to skip installation and configuration,
just run mrm --preset @viewar/mrm-preset lint

see: lint Task of '@viewar/mrm-preset'

install package: npm i -D eslint @viewar/config-eslint
includes all eslint and prettier related plugins and shared configs

Configuration

eslint (either JS or JSON)

JS - {workspace}/.eslintrc.js:

module.exports = { extends: [require.resolve('@viewar/config-eslint')] };

JSON - {workspace}/.eslintrc:

{ "extends": ["./node_modules/@viewar/config-eslint/index.js"] }

prettier

// {workspace}/prettier.config.js
module.exports = require('@viewar/config-eslint/prettier.config.js');

NPM Lint Script

"lint": "eslint --fix --ext \".js,.jsx,.ts,.tsx\" . --quiet --format pretty && prettier **/*.{css,scss,md,json} --write"

Integration (VsCode)

install extensions:

  • "dbaeumer.vscode-eslint"
  • "teeLang.vsprettier"

configure vscode:

// {workspace}/.vscode/settings.json
{
  // PRETTIER
  {
  "editor.formatOnSaveTimeout": 500,

  "editor.defaultFormatter": "teeLang.vsprettier",
  "vsprettier.requireConfig": true,
  "vsprettier.packageManager": "npm",
  "vsprettier.useEsLint": false,
  "vsprettier.useStyleLint": true,

  "editor.codeActionsOnSave": { "source.fixAll.eslint": true },
  "eslint.validate": [ "javascript", "javascriptreact", "typescript", "typescriptreact" ],
  "eslint.alwaysShowStatus": true,
  "eslint.run": "onType",
  "eslint.lintTask.enable": true,
  "eslint.workingDirectories": [{ "directory": ".", "changeProcessCWD": true }],

  "javascript.implicitProjectConfig.checkJs": true,

  "javascript.validate.enable": false,
  "javascript.format.enable": false,
  "[javascriptreact]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint",
    "editor.formatOnPaste": false,
    "editor.formatOnSave": false,
    "editor.formatOnType": false,
    "editor.formatOnSaveTimeout": 500
  },
}

Import Resolvers

enables absolute import paths
like import Header from 'components/Header'

webpack

applied to env 'react'

  • uses 'tsconfig-paths-webpack-plugin' to resolve import paths
    requires: workspaceRoot/tsconfig.json
    see path-mapping for typescript

  • if tsconfig.json is not present it won't use that plugin
    and uses the default resolve config:

      resolve: {
        extensions: ['.jsx', '.js', '.ts', '.tsx', '.json'],
        // paths are relative to workspace root
        alias:      {
          components: join(basename(CONSTANTS.paths.src), 'components'),
          assets: CONSTANTS.paths.assets
        },
        modules: ['node_modules'],
      }
    
  • you can overwrite this config to fit your projects module resolvement,
    if you add 'webpack.config.resolve.js' to your workspaceRoot
    (use format of 'src/webpack.config.resolve.js')

node

applied to env 'browser' and 'node'

{
  paths:      [ './src' ],
  extensions: [ '.js', '.jsx', '.json' ],
}

Current Tags

  • 1.12.0                                ...           latest (2 months ago)

7 Versions

  • 1.12.0                                ...           2 months ago
  • 1.11.0                                ...           2 months ago
  • 1.10.0                                ...           7 months ago
  • 1.9.0                                ...           7 months ago
  • 1.8.0                                ...           8 months ago
  • 1.7.0                                ...           8 months ago
  • 1.6.0                                ...           8 months ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 2
Dev Dependencies (5)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |