quick-lint-js

Find bugs in JavaScript programs.

Faster, easier, friendlier: how quick-lint-js will take over ESLint

ESLint finds bugs. Or does it? ESLint is so slow that you don't bother until you make a PR. So what's the point?

quick-lint-js is different. Instantly find bugs in JavaScript, right in your editor. Waste less time fiddling with ESLint plugins and configs and more time tweaking margins and rounded corners.

We are proud to announce version 1.0 of quick-lint-js!

Notable quick-lint-js features:

quick-lint-js running in Visual Studio Code

How does quick-lint-js compare to ESLint? See for yourself:

ESLint
function getDefaultConfig() {
  return
  {
    dbHost: "localhost",
  };
}

Parsing error: Unexpected token }

quick-lint-js
function getDefaultConfig() {
  return
  {
    dbHost: "localhost",
  };
}

return statement returns nothing (undefined) [E0179]

ESLint
app.get("/", await (req, res) => {
  await doHomePage(req, res);
});

Parsing error: Unexpected token =>

quick-lint-js
app.get("/", await (req, res) => {
  await doHomePage(req, res);
});

'await' cannot be followed by an arrow function; use 'async' instead [E0178]

ESLint
function readConfig(configFilePath) {
  let data = await readFile(configFilePath);
  return parseConfig(data);
}

Parsing error: Unexpected token readFile

quick-lint-js
function readConfig(configFilePath) {
  let data = await readFile(configFilePath);
  return parseConfig(data);
}

'await' is only allowed in async functions [E0162]

What should we work on next? Suggest features for quick-lint-js.

quick-lint-js was born on , after frustrations with ESLint and Flow. 20 months and 2700 patches later, quick-lint-js is finally ready for beginners and experts alike. Through our hiring program, we have paid 311 USD to contributors. 36 people made quick-lint-js possible.

Written by strager, lead developer of quick-lint-js.