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

common-ignore

v2.0.1

Published

A tool for generating .gitignore and .npmignore files with a common file for both ignores.

Downloads

20

Readme

Common-Ignore

A tool for generating .gitignore and .npmignore files with a common file for both ignores.

Installing

npm install --save-dev common-ignore

Why Common-Ignore Is Useful.

How .npmignore works.

By default npm uses .gitignore. If there is also a .npmignore file, then npm will use the .npmignore file instead of the .gitignore file.

Accidentally publishing secret files

The .npmignore file can be useful, especially for repositories with other files that the npm package doesn't need. However, you need to remember to also include things that would be in .gitignore, which usually include secrets. It can be annoying to copy and paste things from .gitignore to .npmignore, and it can be easy to forget. For example, you could add something to .gitignore, but then forgot to also add it to .npmignore.

Using

Config

There are three properties in a config object

  • inputDir - The directory that contains the input files (then you can use the relative paths of individual inputs.)
  • outputDir - The directory that the output files are in (usually it's just ./, for top level outputs.)
  • files - The inputs and their outputs. This is an object
    • keys - strings containing the name or path of the input file.
    • values - options for the file
      • extends - an array of files which it extends. This can be an empty array. If an item in this array is not an input in the config, then it will read that file. If items in the array are also inputs in files, then they will recursively extend whatever they extend. For example, if a.txt extends b.txt, and b.txt extends c.txt, then a.txt will extend both b.txt and c.txt.
      • output - The output path or file name of the input. This is usually .gitignore or .npmignore, but you can add whatever output names you want.

Here is an example which has two inputs. git.txt and npm.txt. Both of them extend common.txt, which is another file in the commonignore folder.

{
    inputDir: "./commonignore",
    outputDir: "./",
    files: {
        "git.txt": {
            extends: ["common.txt"],
            output: ".gitignore"
        },
        "npm.txt": {
            extends: ["common.txt"],
            output: ".npmignore"
        },
        "another.txt": {
            extends: ["git.txt", "npm.txt"],
            output: "another.ignore"
        }
    }
}

Node.js Module

import commonIgnore from 'common-ignore'

The commonIgnore function takes two parameters. The first one is the options / config. The second parameter is optional, and it is the base directory. Usually the base directory is the root folder of your project. It returns a promise, which resolves undefined once done.

Example

commonIgnore(myOptions, __dirname)
    .then(() => {
        console.log("Done");
    })
    .catch(err => {
        console.log("Error");
    })