• 27-Dec-2022
Lightrun Team
Author Lightrun Team
Share
This is a glossary of all the common issues in Okonet lint-staged

Troubleshooting Common Issues in Okonet lint-staged

Lightrun Team
Lightrun Team
27-Dec-2022

Project Description

lint-staged is a Node.js library that allows you to run linters (such as ESLint) on staged files in a Git repository. It is often used in conjunction with a tool like Husky to automatically lint code as part of the Git commit process.

With lint-staged, you can specify which linters to run on which files, and lint-staged will only lint the files that have been staged for commit. This can be useful for ensuring that only code that meets certain standards is committed to the repository, and for automatically fixing linting issues as part of the commit process.

Troubleshooting Okonet lint-staged with the Lightrun Developer Observability Platform

Getting a sense of what’s actually happening inside a live application is a frustrating experience, one that relies mostly on querying and observing whatever logs were written during development.
Lightrun is a Developer Observability Platform, allowing developers to add telemetry to live applications in real-time, on-demand, and right from the IDE.
  • Instantly add logs to, set metrics in, and take snapshots of live applications
  • Insights delivered straight to your IDE or CLI
  • Works where you do: dev, QA, staging, CI/CD, and production

Start for free today

The following issues are the most popular issues regarding this project:

lint-staged is not taking .eslintrc.js configuration.

Recently, I began encountering the same problem – running ‘eslint –fix’ in isolation works but when run through lint-staged, it would seem to ignore its configuration.

Husky is misconfigured if package.json is not in the same directory as the .git folder

We’ve recently made exciting updates to our installation process, allowing for a more streamlined experience with fewer complications.

npx mrm lint-staged

Despite our best efforts, it appears that this venture has little chance of success; however, we can take solace in the fact that such an outcome was always expected.

Resolve the issues with npm’s preparation script for a smoother operation.

"prepare": "husky install" -> "prepare": "cd pathToYourRepoRoot && husky install pathToYourProject/.husky"
npm i

To ensure the quality of your project, a pre-commit file can be added to the .husky folder with a script designed specifically for this purpose. This has been modified from its original documentation as husky needs to run in the repository root folder while lint-staged requires package.json in order to access linters successfully.

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

cd pathToYourProject && npx lint-staged

lint-staged failed due to a git error

Pnpm -r was running in concurrency and creating a problem, so we solved it by using pnpm’s –workspace-concurrency=1 parameter when calling lint-staged. This has proven to be an effective solution allowing us to work with ease.

Eslint not producing the error messages when run as a precommit hook using lint-staged

ESLint may produce warnings, but as long it returns an exit code of 0 all is well. To ensure no warnings manifest, however, one can run ESLint with the —max-warnings=0 option or set rules to error levels for maximum effectiveness.

No staged files match any of provided globs

By deleting my current node_modules folder and re-installing the modules, I was able to resolve this issue.

lint-staged hang for nx monorepo

After making a modification to the glob-file-pattern by removing the HTML type, it was evident that a separate config file was in use. I encountered an error regardless of this action. Investigating further into nx affected:lint command revealed the –files parameter – allowing for all files to be manually specified as opposed to using –uncommitted. With these insights at hand, my configuration underwent changes resulting in one seen here today.

module.exports = {
  '{apps,libs}/**/*.{ts,json,md,scss,html}': files => {
    return [
      `npm run affected:lint -- --fix --parallel --files=${files.join(',')}`,
      'npm run format:write -- --uncommitted',
      `git add ${files.join(' ')}`,
    ];
  },
};

After correctly formatting the affected lint and issuing a proper git command, success! The previously unsuccessful commit has now been completed. Many thanks to our collaborative efforts in finding this solution – your guidance was invaluable!

Share

It’s Really not that Complicated.

You can actually understand what’s going on inside your live applications. It’s a registration form away.

Get Lightrun

Lets Talk!

Looking for more information about Lightrun and debugging?
We’d love to hear from you!
Drop us a line and we’ll get back to you shortly.

By submitting this form, I agree to Lightrun’s Privacy Policy and Terms of Use.