Skip to content

Kikobeats/untracked

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

211 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


untracked



Last version NPM Status

Universal way for ignoring unnecessary common files to create the smallest production bundle possible.

untracked generates ignore patterns for files you don't need in production: documentation, config files, source maps, type definitions, test files, and more: using gitignore pattern format, making it compatible with any tool that supports ignore files.

Install

npm install untracked -g

Usage

npx untracked

The files to ignore will be detected automagically.

Write to a file

Redirect the output to any ignore file:

npx untracked > .dockerignore
npx untracked > .slugignore
npx untracked > .vercelignore

Update in place

If you already have an ignore file with custom rules, use --write to update only the auto-generated section (between ### start and ### finished markers) while preserving everything else:

npx untracked --write .dockerignore

Platform examples

Heroku: write as .slugignore during prebuild:

{
  "scripts": {
    "heroku-prebuild": "npx untracked > .slugignore"
  }
}

Vercel: write as .vercelignore:

npx untracked > .vercelignore

Docker: write as .dockerignore:

npx untracked > .dockerignore

Yarn: clean up node_modules via .yarnclean:

yarn install --production
npx untracked > .yarnclean
yarn autoclean --force

Configuration

Customize ignored files by declaring an untracked field in your package.json:

{
  "untracked": {
    "whitelist": ["bin"],
    "blacklist": ["node_modules/puppeteer/.local-chromium"]
  }
}
Field Description
whitelist Files to include in the bundle (won't be ignored)
blacklist Additional files to ignore
write Set to true (defaults to .dockerignore) or a file path to auto-update in place

You can also use any cosmiconfig supported format: .untrackedrc, .untrackedrc.json, .untrackedrc.js, or untracked.config.js.

How it works

untracked builds a comprehensive list of common files to ignore, covering:

  • Documentation: README, LICENSE, CHANGELOG, CONTRIBUTING, etc. (all markup formats)
  • Tooling: Makefile, Gruntfile, Gulpfile, karma.conf.js, jest.config.js, etc.
  • Assets: *.map, *.d.ts, *.flow, etc.
  • Artifacts: coverage/, docs/, examples/, test*, etc.

It then reads your dependencies from npm ls --prod and generates ignore rules that exclude everything unnecessary while preserving your production dependencies.

Related

License

untracked © Kiko Beats, released under the MIT License.
Authored and maintained by Kiko Beats with help from contributors.

kikobeats.com · GitHub @Kiko Beats · X @Kikobeats

About

Universal way for ignoring unnecessary common files to fit your bundle

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors