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

eslint-plugin-auto-import

v0.1.1

Published

Automatically update imports

Downloads

7,287

Readme

eslint-plugin-auto-import

This is an ESLint plugin that will automatically add (ES6) imports to your modules, when there are undefined references that can be resolved to existing modules in your defined paths, when ESLint is run in --fix mode.

Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev

Next, install eslint-plugin-auto-import:

$ npm install eslint-plugin-auto-import --save-dev

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-auto-import globally.

Usage

Add auto-import to the plugins section of your .eslintrc configuration file, and then add an auto-import rule with the configuration of your modules. Here is an example:

{
  "plugins": [
      "auto-import"
  ],
  "rules": {
    "auto-import/auto-import": [2, {
        "rootPath": "./src",
        "packages": {
          "d3": "d3",
          "bloodhound": "Bloodhound",
          "moment": "moment",
          "alkali": {
            "hasExports": "module-path/to/alkali"
          },
          "dgrid": {
            "modulesIn": "./bower_components/dgrid"
          },
          "dstore": {
            "modulesIn": "./bower_components/dstore"
          }
        }
      }]
  }
}

To use auto-import, simply write some code with undefined variables named after modules, and then run eslint in fix mode (it must be run in fix mode to modify your code), and the plugin will search through your paths to find any modules or module exports that match your variables, and add corresponding imports for them. The import will look like:

import MyVariable from '../path/to/MyVariable'

If no module is found, the undefined variable (and warning) will be left in place.

Configuration

There are several parts of configuration that can be used to define the lookup of modules to satisfy undefined referneces:

  • rootPath - This defines the root path of where your modules that you are writing reside. The first thing this plugin will do to try to resolve a module, is it will search through the current directory, then the parent directory, then the children of the parent directory, then the grandparent directory, and so forth. If it finds a module with the same name as your undefined variable, it will import it using a relative path.
  • packages - These are packages and package modules that can be referenced. There are several types of packages that can be listed for resolution of undefined variables:
    • A String - If the package is simply a string, and the string matches the name of the variable, the package will be imported as the variable name. For example, if we specify "lodash": "_", and an undefined variable _ is found in your code, auto-import will add import _ from 'lodash'
    • An object with modulesIn - In this case it will search the given directory for modules that match the undefined variable name. This will result in an import like import List from 'dgrid/List'
    • An object with exports - In this case it will load the module given by the value of the property, and look at all the exports of module for a match for the undefined variable name. This will result in an import like import { Div } from 'alkali'