@phanect/tslint-config-phanective

Personal ESLint configuration for @phanect


Keywords
tslint, tslint-config
License
Other
Install
npm install @phanect/tslint-config-phanective@2017.9.3

Documentation

eslint-config-phanective

CircleCI

ESLint config for my own projects.

Install

Set overrides in package.json first:

  "overrides": {
    "@typescript-eslint/eslint-plugin": "latest"
  }

Then install eslint and this package:

npm install -D eslint eslint-config-phanective

Usage

Create an .eslintrc.js like following on the project root:

const { join } = require("path");

module.exports = {
  extends: "phanective",
  root: true,

  env: {
    browser: true, // or: "node": true
  },
  // If your project is TypeScript-based, you need to specify the tsconfig.json location
  parserOptions: {
    project: join(__dirname, "./tsconfig.eslint.json"),
  },
  // Add sourceType: "module" if you use `import`/`export` syntax in JS. (e.g. JS modules, webpack)
  // You don't need this if only use TS. By default, sourceType is "script" in JS and "module" in TS.
  // To avoid treating *.cjs files as modules, ensure to use `overrides` to only apply it to *.js.
  overrides: [{
    files: [ "*.js", "**/*.js" ],
    parserOptions: {
      sourceType: "module",
    },
  }],
};

Also create .eslintrc.js in the test directory for test-specific configs:

module.exports = {
  extends: "phanective/jest",
};

Supported configs:

  • phanective
  • phanective/node
  • phanective/react
  • phanective/next
  • phanective/vue+js (Vue 3)
  • phanective/vue+ts (Vue 3)
  • phanective/nuxt+js (Nuxt 3)
  • phanective/nuxt+ts (Nuxt 3)
  • phanective/jest

Test with realworld projects

  1. Generate npm package
$ cd /path/to/eslint-config-phanective
$ npm pack
  1. Install new package on a realworld project
$ cd /path/to/target/project
$ npm install ../eslint-config-phanective/eslint-config-phanective-2022.1.1.tgz
  1. Test
# $ cd /path/to/target/project
$ npm run lint