npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ojolabs/linter

v1.0.11

Published

Shared linting rules for javascript applications

Downloads

3

Readme

linter

Shared linting rules and executable for all javascript applications

Configuring

This project is based on eslint. To take advantage of this linter:

  • Add this project as a dev dependency
  • Add a lint command to package.json for project linting
  • Add a lint check to shippable.yml to get linting during CI
  • Add an .eslintrc configuration file to add custom rules, inherit from a specific config file in this project, and (as a pre-requisite) to get live-linting in your editor

At a minimum, have the following in your package.json file:

"scripts": {
    "lint": "linter",
    ...
},
"devDependencies": {
    "@ojolabs/linter": "git://github.com/ojolabs/linter.git",
    ...
}

Configuring eslint

Consult the eslint documentation for information on how the various configuration options work, especially the rules page. This project provides some base javascript rules and both a node and browser (react) specific configuration file. These can be inherited from as a starting point by extending one of the existing configuration files (see eslint directory) to your projects .eslintrc file:

{
    "extends": ["./node_modules/@ojolabs/linter/node"]
}

Note the above assume you have arleady required this project as a dev-dependency and run npm install. Also note that as the linter descends directories, if it finds additional .eslintrc configuration files, they will over-ride preceding files. This can be used for e.g. a test directory where you want test specific environments or rules to be enforced.

Integrating with Shippable builds

When run, the linter looks for the XUNIT_LINTER_FILE environment variable. If found, it will output linting results to the specific file in a junit xml format. In your shippable yaml file:

...
env:
  - XUNIT_LINTER_FILE=shippable/testresults/lint.xml
...
script:
  - npm run lint

Integrating with Browserify / package.json based build

You can integrate eslint into the build directly by using the eslintify browserify transform. Note this is for development support, and will not break the build if linting fails (shippable integration is required for that)

npm install --save-dev eslintify

Then in your package.json:

...
browserify": {
    "transform": [
      "eslintify",
      "babelify",
      "envify"
    ]
  },
...

Live Linting

You can configure eslint to lint your code as you develop, providing inline editor errors. To do so, you'll need to install eslint globally. For projects that require plugins (like react), you'll also need to globally install that. e.g.:

sudo npm install -g eslint eslint-plugin-react

Afterwards, consult your editor specific docs for setting up live linting:

Allegedly, installing eslint_d can significantly improve live linting performance.