2013-02-28 14 views
32

Mam projekt, który zależy od wielu bibliotek stron trzecich.npm zainstalować repozytorium git bez pakietu.json

Moja package.json wygląda następująco:

"dependencies": { 
    "vendor-name": "git://github.com/vendor/name.git#v1.1", 
    ... 
} 

Działa to tak długo, jak repozytorium vendor-name zawiera package.json.

Jeśli nie ma tam takiego pliku, otrzymuję:

npm ERR! path /var/folders/0l/temp-folder/package.json 
npm ERR! code ENOENT 

Faktycznie, npm install git://github.com/vendor/name.git#v1.1 nie działa, too. tam jest sposób, aby zainstalować (obejmuje) repozytoriów git (w dependencies), które nie mają package.json:

Więc moje pytanie?

+2

Nie sądzę, że to możliwe. Jeśli repozytorium nie jest twoje, rozwidnij je i dodaj do niego swój własny plik 'package.json'. Być może nawet przesłać żądanie pobrania. –

+0

Pomyślałem o użyciu Napa zgodnie z sugestią, ale twoje rozwiązanie jest lepsze, moim zdaniem. –

Odpowiedz

8

Co napa zrobić wydaje się być overengineered. Myślę, że wystarczy tylko dodać skrypt instalacyjny do pliku package.json.

"scripts": { 
    "install": "git clone https://github.com/vendor/name.git -b v1.1 node_modules/name" 
} 
+5

Może to spowodować problem przy ponownym uruchomieniu, ponieważ klon prawdopodobnie się nie powiedzie. – Danosaure

Powiązane problemy