a cli tool to build and sync *ignore files across files and repositories
-
Github default
.gitignoredoesn't cover all our needs, we always need to compose and manage multiple.gitignorefiles from github, such as Node.gitignore + macOS.gitignore, in order to remove all the noises in our development. It should be automated. -
For library developer, we often need to compose a
.npmignorefrom.gitignoreand some extra ignore patterns that we do not wish to ignore by.gitignore, such as test files and.*rcfiles. If.gitignoreis updated, you will need to update corresponding part of.npmignoremanually. We should avoid this repetitive work.
a short example on how ignore-sync handle ignore files
[github/gitignore]
Node.gitignore
Global/macOS.gitignore
[inline]
*.test.js
yarn.lock-
npm install --save-dev ignore-sync -
update
package.json{ "scripts": { + "ignore-sync": "ignore-sync ." } } -
now follow how to use to create
*ignore-syncfiles, thennpm run ignore-sync, all corresponding ignore files will be generated.
We are using corepack to manage the yarn version
corepack enable-
ignore-syncworks on any ignore file that name end withignore, such as.gitignore,.npmignore,.eslintignore, etc. Simply creating a file that end withignore-sync.example:
.gitignore-sync->.gitignore -
create a source tag in your
*ignore-syncfile to identify the source of ignore patterns[put_source_tag_here]different source tag identifies different source of ignore patterns
-
[inline]- the ignore patterns will be copied directly to generated ignore file
-
[local]- the content of these local files will be copied directly to generated ignore file
- support glob pattern, e.g.
packages/**/.gitignore - support referencing other ignore-sync files, e.g. referencing
.gitignore-syncin.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 -
support referencing other ignore-sync files, e.g. referencing
.gitignore-syncin.npmignore-sync -
example
# input: /packages/a/.prettierignore ignored.md# input: /.prettierignore-sync [relative] packages/a/.prettierignore
# output: /.prettierignore packages/a/ignored.md
-
-
[$username/$repo#$ref]- the content of these github files will be downloaded and appended to generated ignore file
- recommend using ignore patterns from [github/gitignore]
$refis optional, default to the default branch
-
-
npm run ignore-sync