2014-06-06 16 views
7

Mam prywatny moduł przechowywany na github, który dołączam do jednego z moich projektów przy użyciu npm. Moduł ma plik .npmignore, ale nic nie jest ignorowane podczas instalacji lub aktualizacji modułu..npmignore nie ignoruje plików

package.json

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

modułu projektu jest za .npmignore plik

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

Kiedy biegnę npm update myModule pliki te są nadal pobierane do mojego projektu. Czy czegoś brakuje? Czy .npmignore pracuje dla modułów hostowanych prywatnie? Z góry dziękuję.

+1

Należy zauważyć, że README jest zawsze dołączone, nawet jeśli jest wymienione w '.npmignore'. Zobacz [docs] (https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package) – Nobita

Odpowiedz

8

Ponieważ określasz zależność myModule jako repozytorium Git, npm prawdopodobnie po prostu klonuje repozytorium. W związku z tym pliki .npmignore nie są używane.

.npmignore wydaje się być używane, gdy "tworzenie modułów", np .: pack lub publish nie zużywa modułów (jak w twoim przykładzie).

1

Bądź ostrożny używając .npmignore

Jeśli nie zostały przy użyciu .npmignore, to domyślnie .gitignore z kilkoma dodatkowymi rozsądnych domyślnych.

Co wielu nie zdaje sobie sprawy, że po dodaniu pliku .npmignore do swojego projektu reguły (ironicznie) są ignorowane. Rezultatem jest potrzeba zsynchronizowania dwóch zignorowanych plików, aby zapobiec wrażliwym wyciekom podczas publikowania.

Mimo to, wydaje mi się, że brakuje /node_modules w swoim .npmignore.

Ustaw atrybut private: true w package.json pliku jak poniżej:

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

Generowanie build do /public folderu, aby opublikować go na NPM repozytorium z .npmignore do tego folderu.