2015-06-22 4 views
8

Я пытаюсь сделать npm скачать только один файл в каталоге на npm install пакета.Как я могу переустановить один файл в каталоге в .npmignore?

каталог выглядит следующим образом:

+- dist/ 
    +- 1.0.0/ 
    +- 1.0.1/ 
    +- ...lots of other dirs... 
    +- file.js 

Я хочу НПМ игнорировать все, но file.js поэтому я попытался в том числе следующие в моей .npmignore:

dist/ 
!dist/file.js 

Тем не менее, НМП до сих пор скачать все каталоги в dist, когда я устанавливаю пакет. Я думал, что это должно работать как .gitignore, но, видимо, мне что-то не хватает.

ответ

7

Да, он работает с использованием Глоб модели: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

Но я бы другой подход:

dist/* 
dist/.* 
!dist/file.js 

для того, чтобы не обращать внимания на всю папку, но это содержимое (во второй строке не может требуется).

+0

Это работает, но, честно говоря, я до сих пор не понимаю, почему. Почему '! Dist/file.js'" убивает "правило' dist/', но не' dist/* 'one? Это произойдет и в git? – m90

+0

Я думаю, что 'dist /' означает, что весь каталог существует (есть белый список здесь), но когда вы говорите 'dist/*' или 'dist /.*', это означает, что все файлы в каталоге 'dist' , Таким образом, это позволяет делать черный список, я думаю. По крайней мере, именно так я решил это понять ;-) – thefourtheye

+0

Хороший ответ +1. Я обнаружил, что вторая строка ('dist /.*') не нужна, и вы можете ее протестировать с помощью [как отладить npmignore] (https://stackoverflow.com/questions/41412694/how-to-debug-npmignore) –

Смежные вопросы