{"_id":"@baptistecrouzet/nuxt-oxlint","_rev":"2-ecf2beee52875a28c25437b939d1495a","name":"@baptistecrouzet/nuxt-oxlint","dist-tags":{"latest":"1.1.5"},"versions":{"1.1.4":{"name":"@baptistecrouzet/nuxt-oxlint","version":"1.1.4","license":"MIT","_id":"@baptistecrouzet/nuxt-oxlint@1.1.4","maintainers":[{"name":"baptistecrouzet","email":"spsantacrouzet@yahoo.fr"}],"homepage":"https://github.com/BaptisteCrouzet/nuxt-oxlint#readme","bugs":{"url":"https://github.com/BaptisteCrouzet/nuxt-oxlint/issues"},"dist":{"shasum":"55dd8e790d8121b590469bdd8b67f604d1a895c8","tarball":"https://registry.npmjs.org/@baptistecrouzet/nuxt-oxlint/-/nuxt-oxlint-1.1.4.tgz","fileCount":10,"integrity":"sha512-xQVC/v+aw/FHVWPxn7EjY74eTtaoZhf23DvTHq1LVrJm7WqzUw8AO5v3V4NwJfHoN3KkJdtxSxSyZufCjC32zQ==","signatures":[{"sig":"MEUCIQDirk0cfl5Lk2dooXF70vEVuyn2+lKwGoqi26h3WOJcNAIgAVdHe/hYE3hrDspAka1MVRaWvunaiZmqVdLEckFpBt8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16066},"main":"./dist/module.mjs","type":"module","exports":{".":{"types":"./dist/types.d.mts","import":"./dist/module.mjs"}},"gitHead":"46bc0e3fd782cd6f19e552c51f72f84ac11ecdf9","scripts":{"dev":"npm run dev:prepare && nuxt dev playground","lint":"eslint .","test":"vitest run","prepack":"nuxt-module-build build","release":"npm run lint && npm run test && npm run prepack && changelogen --release && npm run publish:all && git push --follow-tags","dev:build":"nuxt build playground","test:types":"vue-tsc --noEmit && cd playground && vue-tsc --noEmit","test:watch":"vitest watch","dev:prepare":"nuxt-module-build build --stub && nuxt-module-build prepare && nuxt prepare playground","publish:all":"npm run publish:check-auth && npm run publish:npm && npm run publish:github","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","publish:github":"npm publish --registry=https://npm.pkg.github.com --@baptistecrouzet:registry=https://npm.pkg.github.com","publish:check-auth":"npm whoami --registry=https://registry.npmjs.org && npm whoami --registry=https://npm.pkg.github.com","publish:dry-run:npm":"npm publish --dry-run --access public --registry=https://registry.npmjs.org","publish:dry-run:github":"npm publish --dry-run --registry=https://npm.pkg.github.com --@baptistecrouzet:registry=https://npm.pkg.github.com"},"_npmUser":{"name":"baptistecrouzet","email":"spsantacrouzet@yahoo.fr"},"repository":{"url":"git+https://github.com/BaptisteCrouzet/nuxt-oxlint.git","type":"git"},"workspaces":["playground"],"_npmVersion":"11.17.0","description":"Nuxt module for OXLint, a linting tool for Nuxt projects. Help developers to switch to Oxlint","directories":{},"_nodeVersion":"26.5.0","dependencies":{"@nuxt/kit":"^4.4.8","vite-plugin-oxlint":"^2.1.2"},"typesVersions":{"*":{".":["./dist/types.d.mts"]}},"_hasShrinkwrap":false,"devDependencies":{"nuxt":"^4.4.8","eslint":"^10.6.0","oxlint":"^1.73.0","vitest":"^4.1.10","vue-tsc":"^3.3.7","typescript":"~6.0.3","@types/node":"latest","changelogen":"^0.6.2","@nuxt/schema":"^4.4.8","@nuxt/devtools":"^3.2.4","@nuxt/test-utils":"^4.0.3","@nuxt/eslint-config":"^1.16.0","@nuxt/module-builder":"^1.0.2"},"peerDependencies":{"oxlint":">=0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/nuxt-oxlint_1.1.4_1783636609699_0.4154075983893184","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@baptistecrouzet/nuxt-oxlint","version":"1.1.5","description":"Nuxt module for OXLint, a linting tool for Nuxt projects. Help developers to switch to Oxlint","repository":{"type":"git","url":"git+https://github.com/BaptisteCrouzet/nuxt-oxlint.git"},"license":"MIT","type":"module","exports":{".":{"types":"./dist/types.d.mts","import":"./dist/module.mjs"}},"main":"./dist/module.mjs","typesVersions":{"*":{".":["./dist/types.d.mts"]}},"workspaces":["playground"],"scripts":{"prepack":"nuxt-module-build build","dev":"npm run dev:prepare && nuxt dev playground","dev:build":"nuxt build playground","dev:prepare":"nuxt-module-build build --stub && nuxt-module-build prepare && nuxt prepare playground","publish:check-auth":"npm whoami --registry=https://registry.npmjs.org && npm whoami --registry=https://npm.pkg.github.com","publish:dry-run:npm":"npm publish --dry-run --access public --registry=https://registry.npmjs.org","publish:dry-run:github":"npm publish --dry-run --registry=https://npm.pkg.github.com --@baptistecrouzet:registry=https://npm.pkg.github.com","publish:npm":"npm publish --access public --registry=https://registry.npmjs.org","publish:github":"npm publish --registry=https://npm.pkg.github.com --@baptistecrouzet:registry=https://npm.pkg.github.com","publish:all":"npm run publish:check-auth && npm run publish:npm && npm run publish:github","release":"npm run lint && npm run test && npm run prepack && changelogen --release && npm run publish:all && git push --follow-tags","lint":"eslint .","test":"vitest run","test:watch":"vitest watch","test:types":"vue-tsc --noEmit && cd playground && vue-tsc --noEmit"},"peerDependencies":{"oxlint":">=0.9.0"},"dependencies":{"@nuxt/kit":"^4.4.8","vite-plugin-oxlint":"^2.1.2"},"devDependencies":{"@nuxt/devtools":"^3.2.4","@nuxt/eslint-config":"^1.16.0","@nuxt/module-builder":"^1.0.2","@nuxt/schema":"^4.4.8","@nuxt/test-utils":"^4.0.3","@types/node":"latest","changelogen":"^0.6.2","eslint":"^10.6.0","nuxt":"^4.4.8","oxlint":"^1.73.0","typescript":"~6.0.3","vitest":"^4.1.10","vue-tsc":"^3.3.7"},"gitHead":"b5b6473878b1c558432c9e419757cc32fd6bd97a","_id":"@baptistecrouzet/nuxt-oxlint@1.1.5","bugs":{"url":"https://github.com/BaptisteCrouzet/nuxt-oxlint/issues"},"homepage":"https://github.com/BaptisteCrouzet/nuxt-oxlint#readme","_nodeVersion":"26.5.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-gcTL485/gKO1uuEHYBiP/GsAfm/9DZ4N7lr/LZCmsCHG2sfFuHkUjays+EsONE9Pp3NJzQ2rI11Ysp9hHxKGcA==","shasum":"e5cb099f10a074b090ac78c38c459e5ad5140278","tarball":"https://registry.npmjs.org/@baptistecrouzet/nuxt-oxlint/-/nuxt-oxlint-1.1.5.tgz","fileCount":10,"unpackedSize":16066,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC6bNdCT6pzz+EbsrSvXuLKz5PdIlh/O9mq3Y0yWAlTwQIhAI/MPa9dGQbWRCjnRKHPvwhZTdUQgeezQGHhEDQ9GSzS"}]},"_npmUser":{"name":"baptistecrouzet","email":"spsantacrouzet@yahoo.fr"},"directories":{},"maintainers":[{"name":"baptistecrouzet","email":"spsantacrouzet@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nuxt-oxlint_1.1.5_1783636667116_0.6126973340417967"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-09T22:36:49.517Z","modified":"2026-07-09T22:37:47.445Z","1.1.4":"2026-07-09T22:36:49.871Z","1.1.5":"2026-07-09T22:37:47.324Z"},"bugs":{"url":"https://github.com/BaptisteCrouzet/nuxt-oxlint/issues"},"license":"MIT","homepage":"https://github.com/BaptisteCrouzet/nuxt-oxlint#readme","repository":{"type":"git","url":"git+https://github.com/BaptisteCrouzet/nuxt-oxlint.git"},"description":"Nuxt module for OXLint, a linting tool for Nuxt projects. Help developers to switch to Oxlint","maintainers":[{"name":"baptistecrouzet","email":"spsantacrouzet@yahoo.fr"}],"readme":"# Nuxt Oxlint\n\n[![npm version][npm-version-src]][npm-version-href]\n[![npm downloads][npm-downloads-src]][npm-downloads-href]\n[![License][license-src]][license-href]\n[![Nuxt][nuxt-src]][nuxt-href]\n\n> Integrate [Oxlint](https://oxc.rs/docs/guide/usage/linter.html) into your Nuxt project — and see lint output directly in the dev server terminal on every save.\n\n<div align=\"center\">\n\n<img src=\"./docs/screenshots/MainNuxtOxlint.png\" alt=\"Nuxt Oxlint\" width=\"820\"/>\n\n<br/>\n\n</div>\n\nHeavily inspired by [`@nuxt/eslint`](https://eslint.nuxt.com), but built for **Oxlint**: a Rust-powered linter built on the Oxc compiler stack, that is orders of magnitude faster than ESLint.\n\n<!-- - [🏀 Online playground](https://stackblitz.com/github/BaptisteCrouzet/nuxt-oxlint?file=playground%2Fapp.vue) -->\n\n## Features\n\n- ⚡ &nbsp;**Fast** — Oxlint is written in Rust and runs in milliseconds even on large codebases (50 to 100 times faster than ESLint ([`see benchmarks`](https://github.com/oxc-project/bench-linter))\n- 🖥 &nbsp;**Dev server output** — lint results appear directly in the terminal at every file save, without leaving your editor\n- 🔧 &nbsp;**Fully configurable** — exposes all `vite-plugin-oxlint` options (config file, rules, format, auto-fix…)\n- 🚫 &nbsp;**Zero runtime overhead** — dev-only, nothing shipped to the browser\n\n\n## Table of contents\n\n- [How it works](#how-it-works)\n- [Requirements](#requirements)\n- [Quick Setup](#quick-setup)\n- [Configuration](#configuration)\n- [Available options](#available-options)\n- [Migrating from @nuxt/eslint](#migrating-from-nuxeslint)\n- [Roadmap](#roadmap)\n- [Contribution](#contribution)\n\n\n## How it works\n\n`nuxt-oxlint` wraps [`vite-plugin-oxlint`](https://github.com/52-entertainment/vite-plugin-oxlint) and registers it inside Nuxt's Vite pipeline via `addVitePlugin`. On every file change detected by the Vite watcher, Oxlint is spawned on the modified file and its output is printed in the dev server terminal.\n\n## Requirements\n\n- Nuxt ≥ 4 (Nuxt 4 with `compatibilityVersion: 5` not tested but accepted)\n- [`oxlint`](https://npmx.dev/package/oxlint) installed in your project as a dev dependency\n\n## Quick Setup\n\n1. Install the module and the oxlint binary\n```bash\npnpm add -D @baptistecrouzet/nuxt-oxlint oxlint\n```\n\n2. Add it to your nuxt.config.ts\n```ts\n// nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: ['nuxt-oxlint'],\n  oxlint: {\n    checker: true, // enable with defaults\n  },\n})\n```\n\nThat's it ! Start your dev server and oxlint will run on every save.\n\n## Configuration\n\nAll options live under the `oxlint` key in `nuxt.config.ts`.\n\n```ts\n// nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: ['nuxt-oxlint'],\n\n  oxlint: {\n    // Set to `true` to enable with defaults, or pass an options object.\n    checker: {\n      // Path to an oxlint config file (default: oxlintrc.json)\n      // it can also be oxlint.config.ts or vite.config.ts\n      // See : https://oxc.rs/docs/guide/usage/linter/config.html\n      configFile: '.oxlintrc.json',\n\n      // Directory to lint (default: project root as '.')\n      path: 'app',\n\n      // For your glob patterns or files to ignore\n      // ignorePattern: 'path/to/dummy/files/beeing/never/linted.ts'\n\n      // Rules to enable / disable / warn\n      // See : https://oxc.rs/docs/guide/usage/linter/rules.html\n      allow: ['debugger'],\n      deny: ['correctness'],\n      warn: ['suspicious'],\n\n      // Path to the oxlint binary (useful in monorepos)\n      // oxlintPath: '/path/to/node_modules/.bin/oxlint',\n\n      // Output format: default | stylish | github | gitlab | json | unix | ...\n      // See : https://oxc.rs/docs/guide/usage/linter/output-formats.html\n      format: 'default',\n\n      // Suppress warnings, only report errors (default: false)\n      // Same as running : oxlint --quiet\n      quiet: false,\n\n      // Attempt an auto-fix on triggered rules, if an autofix exists\n      fix: false\n\n      // Fail the dev build on lint errors (default: false)\n      failOnError: false,\n\n      // Fail the dev build on lint warnings (default: false)\n      failOnWarning: false,\n\n      // Run oxlint when the dev server starts (default: true)\n      lintOnStart: true,\n\n      // CLI flags additionnaly passed to oxlint\n      // See : https://oxc.rs/docs/guide/usage/linter/cli.html\n      // params: '--report-unused-disable-directives --type-aware'\n    },\n  },\n  // Display the path to the oxlint config file in the terminal when the dev server starts\n  displayConfigfileOnStart: false,\n})\n```\n\n### Available options\n\nAll options from [`vite-plugin-oxlint`](https://github.com/52-entertainment/vite-plugin-oxlint#options) are supported:\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `configFile` | `string` | `oxlintrc.json` | Path to the oxlint config file |\n| `path` | `string` | `.` | Directory where oxlint runs |\n| `ignorePattern` | `string \\| string[]` | — | Glob patterns to ignore |\n| `allow` | `string[]` | — | Rules/categories to turn off |\n| `deny` | `string[]` | — | Rules/categories to turn on |\n| `warn` | `string[]` | — | Rules/categories to warn |\n| `oxlintPath` | `string` | — | Explicit path to the oxlint binary |\n| `format` | `string` | `default` | Output format |\n| `quiet` | `boolean` | `false` | Only report errors |\n| `fix` | `boolean` | `false` | Auto-fix issues |\n| `failOnError` | `boolean` | `false` | Fail build on errors |\n| `failOnWarning` | `boolean` | `false` | Fail build on warnings |\n| `lintOnStart` | `boolean` | `true` | Lint all files on dev server start |\n| `params` | `string` | — | Extra raw CLI flags |\n\n## Migrating from `@nuxt/eslint`\n\n### 1. Swap the packages\n\n```bash\npnpm remove @nuxt/eslint\npnpm add -D nuxt-oxlint oxlint\n```\n\n### 2. Update `nuxt.config.ts`\n\n```diff\n  export default defineNuxtConfig({\n    modules: [\n-     '@nuxt/eslint',\n+     'nuxt-oxlint',\n    ],\n-   eslint: {\n-     checker: true,\n-   },\n+   oxlint: {\n+     checker: true,\n+   },\n  })\n```\n\n### 3. (Optional) Keep ESLint for rules not yet covered by Oxlint\n\nOxlint covers [more than 840 rules](https://oxc.rs/docs/guide/usage/linter/rules.html) out of the box, including popular plugins.\nIf you still rely on ESLint plugins that Oxlint doesn't support yet, you can run both in parallel:\n\n```bash\npnpm add -D @nuxt/eslint eslint-plugin-oxlint\n```\n\n```ts\n// nuxt.config.ts\nexport default defineNuxtConfig({\n  modules: ['@nuxt/eslint', 'nuxt-oxlint'],\n  eslint: { checker: true },\n  oxlint: { checker: true },\n})\n```\n\nThen add [`eslint-plugin-oxlint`](https://github.com/oxc-project/eslint-plugin-oxlint) to your ESLint config to automatically turn off rules already handled by Oxlint — avoiding double reports:\n\n```js\n// eslint.config.mjs\nimport oxlint from 'eslint-plugin-oxlint'\n\nexport default [\n  // … your other rules\n  ...oxlint.buildFromOxlintConfigFile('.oxlintrc.json'),\n]\n```\n\n## Roadmap\n\nIt could be better to go further :\n\n- Add a nuxt devtool tab in order to edit the config in live\n  - Display some toggles for enabled categories (and the amount of corresponding rules)\n  - Display the configFile used\n  - Add two butons : \"Save to config file\" / \"Save to nuxt.config\"\n  - button \"reset to defaults\"\n  - button \"Re-lint now\"\n  - button \"Try to fix fixable things\"\n- Add a tool for migrating from eslint in devtools\n - Display the number of supported rules\n - Display the numer of not supported rules\n - Display the unsupported configuration entries or options\n - Display the transposed configuration\n - Add a button or script helping to switch to Oxlint\n- Explore typecheck option of oxlint and add some hints in the readme or warnings if needed\n- Display a summary bar: X errors, Y warnings, Z files\n\n\n## Contribution\n\n<details>\n  <summary>Local development</summary>\n\n  ```bash\n  # Install dependencies\n  pnpm install\n\n  # Generate type stubs\n  pnpm dev:prepare\n\n  # Develop with the playground\n  pnpm dev\n\n  # Build the module\n  pnpm prepack\n\n  # Run ESLint\n  pnpm lint\n\n  # Run Vitest\n  pnpm test\n  pnpm test:watch\n  ```\n\n</details>\n\n<details>\n  <summary>Contributing</summary>\n\n  * Conventional commits are required\n  * This is not an official Nuxt module\n  * Be kind\n\n</details>\n\n<!-- Badges -->\n[npm-version-src]: https://img.shields.io/npm/v/nuxt-oxlint/latest.svg?style=flat&colorA=020420&colorB=00DC82\n[npm-version-href]: https://npmjs.com/package/nuxt-oxlint\n\n[npm-downloads-src]: https://img.shields.io/npm/dm/nuxt-oxlint.svg?style=flat&colorA=020420&colorB=00DC82\n[npm-downloads-href]: https://npmjs.com/package/nuxt-oxlint\n\n[license-src]: https://img.shields.io/npm/l/nuxt-oxlint.svg?style=flat&colorA=020420&colorB=00DC82\n[license-href]: https://npmjs.com/package/nuxt-oxlint\n\n[nuxt-src]: https://img.shields.io/badge/Nuxt-020420?logo=nuxt.js\n[nuxt-href]: https://nuxt.com\n","readmeFilename":"README.md"}