2024.8.7 • Published 10 months ago

eslint-config-phanective v2024.8.7

Weekly downloads
-
License
CC0-1.0
Repository
github
Last release
10 months ago

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: "script"` if \*.js files should be treated as CommonJS.
  overrides: [{
    files: [ "*.js", "**/*.js" ],
    parserOptions: {
      sourceType: "script",
    },
  }],
};

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/with-deps
    • Use this rules in addition to the above rules if the project depends on package.json's dependencies on production i.e. npm packages and backend Node.js app without bundling.

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