Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.npmignore not ignoring files

I have a private module stored on github that I'm including in one of my projects using npm. The module has a .npmignore file, but nothing is being ignored when I install or update the module.

Project's package.json

{
  "name": "Your Cool Project",
  "version": "0.0.0",
  "dependencies": {
    "myModule" : "git+ssh://[email protected]:user/myModule.git",
    /* All your other dependencies */
  }
  ...
}

Module's .npmignore file

.git*
gulpfile.js
index.html
tests.js
README.md

When I run npm update myModule these files are still being downloaded into my project. Am I missing something? Does .npmignore work for privately hosted modules? Thanks in advance.

like image 975
stolksdorf Avatar asked Jun 06 '14 14:06

stolksdorf


2 Answers

Since you're specifying the dependency myModule as a Git repository, npm is probably just cloning the repo. Therefore your .npmignore files isn't being used.

.npmignore seems to be used when "making modules" eg: pack or publish not consuming modules (like in your example).

like image 147
kierans Avatar answered Oct 20 '22 01:10

kierans


Be careful when using .npmignore

If you haven't been using .npmignore, it defaults to .gitignore with a few additional sane defaults.

What many don't realize that once you add a .npmignore file to your project the .gitignore rules are (ironically) ignored. The result is you will need to audit the two ignore files in sync to prevent sensitive leaks when publishing.

Still, I think is missing put the /node_modules in your .npmignore.

Set the attribute private: true in package.json file as below:

{
  "name": "project-name",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
  },
  "private": true,
  "dependencies": {
  },
  "devDependencies": {
  }
}

Generate the build into /public folder to publish it to NPM repository with .npmignore into that folder.

like image 31
Fernando Santucci Avatar answered Sep 22 '22 17:09

Fernando Santucci