a CLI tool to build and sync *ignore files across files and repositories
npm install ignore-synca cli tool to build and sync \*ignore files across files and repositories
1. Github default .gitignore doesn't cover all our needs, we always need to compose and manage multiple .gitignore files from github, such as Node.gitignore + macOS.gitignore, in order to remove all the noises in our development. It should be automated.
1. For library developer, we often need to compose a .npmignore from .gitignore and some extra ignore patterns that we do not wish to ignore by .gitignore, such as test files and .*rc files. If .gitignore is updated, you will need to update corresponding part of .npmignore manually. We should avoid this repetitive work.
a short example on how ignore-sync handle ignore files
``ini
[github/gitignore]
Node.gitignore
Global/macOS.gitignore
[inline]
*.test.js
yarn.lock
`
1. npm install --save-dev ignore-syncpackage.json
1. update
`diff json`
{
"scripts": {
+ "ignore-sync": "ignore-sync ."
}
}
1. now follow how to use to create *ignore-sync files, then npm run ignore-sync, all corresponding ignore files will be generated.
We are using corepack to manage the yarn version
`bash`
corepack enable
1. ignore-sync works on any ignore file that name end with ignore, such as .gitignore, .npmignore, .eslintignore, etc. Simply creating a file that end with ignore-sync.
example: .gitignore-sync -> .gitignore
1. create a source tag in your *ignore-sync file to identify the source of ignore patterns
`ini`
[put_source_tag_here]
different source tag identifies different source of ignore patterns
- [inline][local]
- the ignore patterns will be copied directly to generated ignore file
- packages/**/.gitignore
- the content of these local files will be copied directly to generated ignore file
- support glob pattern, e.g. .gitignore-sync
- support referencing other ignore-sync files, e.g. referencing in .npmignore-sync[relative]
-
- the content of these local files will be copied with relative path prefix to generated ignore file
- support glob pattern, e.g. packages/**/.gitignore.gitignore-sync
- support referencing other ignore-sync files, e.g. referencing in .npmignore-sync
- example
`ini`
# input: /packages/a/.prettierignore
ignored.md
`ini`
# input: /.prettierignore-sync
[relative]
packages/a/.prettierignore
`ini`
# output: /.prettierignore
packages/a/ignored.md
- [$username/$repo#$ref]$ref
- the content of these github files will be downloaded and appended to generated ignore file
- recommend using ignore patterns from [\[github/gitignore\]](https://github.com/github/gitignore)
- is optional, default to the default branch
1. npm run ignore-sync`