35

untracked: Universal way for ignoring unnecessary common files

 5 years ago
source link: https://www.tuicool.com/articles/nQFnq2i
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

untracked

jmeMvqb.png!web

untrackedis a universal way for ingnoring unnecessary common files (such as README.md , LICENSE.md , Makefile , Gruntfile , Gulpfile , karma.conf.js , etc) to fit your bundle and create smallest production ready bunddle possible.

Usage

Just run the command

npx untracked

The files to ignore will be detected automagically :sparkles: .

Using with Up

You need to write the output as .upignore .

For doing that you can run the command directly

npx untracked > .upignore

Also, you can declare it as build hook in your up.json :

{
  "hooks": {
  "build": [
    "npx untracked > .upignore"
  ],
  "clean": [
    "rm -f .upignore"
  ]
}

Using with Heroku

You need to write the output as .slugignore .

For doing that you can run the command directly

npx untracked > .slugignore

Also, you can declare it as heroku-prebuild at scripts in your package.json :

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

Using with ZEIT Now

Just you need to write the output at .nowignore file.

npx untracked > .nowignore

Using with Yarn

Yarn supports remove unnecessary files via .yarnclean .

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

Using with Docker

Just you need to write the output at .dockerignore file.

npx untracked > .dockerignore

Additional Files

Sometimes you need to declare an extra file to include/ignore in the bundle.

That's could be achieve just declaring a untracked field into your package.json :

{
	"untracked": {
		"whitelist": [
	  "bin",
    ],
    "blacklist": [
      "bench",
      "node_modules/@ffprobe-installer/darwin-x64",
      "node_modules/@ffprobe-installer/linux-ia32",
      "node_modules/@ffprobe-installer/win32-ia32",
      "node_modules/@ffprobe-installer/win32-x64",
      "node_modules/puppeteer/.local-chromium",
      "scripts"
    ]
  }
}

If you need to declare this files programatically, you can use any of the cosmiconfig supported ways for loading the configuration.

How It Works™

untrackedcreate a list of common files to ignore using gitignore pattern format .

This makes it compatible with any builder process that supports ignore files based on this pattern declaration.

Under the hood, untracked supports file name variations for files such as

  • Documentation ( docs , LICENSE , README , etc).
  • Toolings configuration ( Makefile , Gruntfile , Gulpfile , karma.conf.js ,etc).
  • Assets ( *.map , *.d.ts , *.flow , etc).

It creates the properly gitpattern for ignoring any of these files.

Related

  • node-prune – Remove unnecessary files from node_modules (.md, .ts, ...).
  • lambdapack – Package your AWS Lambda efficiently.

License

untracked© Kiko Beats , Released under the MIT License.

Authored and maintained by Kiko Beats with help from contributors .

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK