Suitable `.gitignore` For Node.js
git, github, gitignore, node.js, npm
Solution
Since your structure is quite organized you could use this pattern to accomplish the task.
/node_modules/*/node-modules/
The above pattern will ignore node_modules under module folders, my-mod1,my-mod4 and others.
The above line will still allow the node_modules under src directory to be included when you push to github.
Problem
Tree structure That's how my Node.js project is organized: ``` / | - node_modules [+ INCLUDE] | | - my-mod1 | | | - node_modules [- IGNORE] | | | | - external-mod1 | | | | - external-mod2 | | | - src | | | | - node_modules [+ INCLUDE] | | | | | - my-mod2 | | | | | - my-mod3 | | - my-mod4 ``` My plan When publishing my project to GitHub: - I want to include `my-mod`s. - I don't want to include the `external-mod`s. That means: - I want to include the top-level `/node_modules` folder. - I don't want to include `node_modules` folders which are direct childs of a module folder. - But I want to include `node_moduels` folders which are childs of a `src` folder. What I did I added the following lines to `/.gitignore`: ``` ################# ## npm ################# npm-debug.log node_modules/ !/node_modules/ !src/node_modules/ ``` My question Which `.gitignore` rules do I need to include the right `node_modules` folders (as described above)? Thanks - if anything's unclear, please comment.