2014-06-06 10 views
7

Ho un modulo privato memorizzato su github che sto includendo in uno dei miei progetti usando npm. Il modulo ha un file .npmignore, ma nulla viene ignorato quando installo o aggiorno il modulo..npmignore non ignora i file

.npmignore file di

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

Progetto package.json

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

del modulo Quando eseguo npm update myModule questi file sono ancora in fase di download nel mio progetto. Mi sto perdendo qualcosa? .npmignore funziona per i moduli ospitati privatamente? Grazie in anticipo.

+1

Si noti che README è sempre incluso, anche se elencato in ".npmignore". Vedi [docs] (https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package) – Nobita

risposta

8

Poiché si specifica la dipendenza myModule come repository Git, npm probabilmente sta solo clonando il repository. Pertanto i tuoi file .npmignore non vengono utilizzati.

.npmignore sembra essere utilizzato quando "creare moduli" ad esempio: pack o publish non consumano moduli (come nell'esempio).

1

Fare attenzione quando si utilizza .npmignore

Se non avete usato .npmignore, il valore predefinito è .gitignore con alcuni default sensati aggiuntivi.

Ciò che molti non si rendono conto che una volta aggiunto un file .npmignore al progetto, le regole .gitignore vengono ignorate (ironicamente). Il risultato è che dovrai controllare i due file di ignorare sincronizzati per evitare perdite sensibili durante la pubblicazione.

Ancora, penso che manchi mettere il /node_modules nel tuo .npmignore.

impostare l'attributo private: true in package.json file come di seguito:

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

Generare l'accumulo nella cartella /public di pubblicarlo a repository NPM con .npmignore in quella cartella.