Powiedzmy, że rozwidliłem moduł węzła z poprawką błędu i chcę używać mojej stałej wersji, oczywiście w gałęzi funkcji, dopóki poprawka nie zostanie scalona i wydana.
Jak mam odwoływać się do mojej stałej wersji w dependencies
mojej package.json
?
Powiedzmy, że rozwidliłem moduł węzła z poprawką błędu i chcę używać mojej stałej wersji, oczywiście w gałęzi funkcji, dopóki poprawka nie zostanie scalona i wydana.
Jak mam odwoływać się do mojej stałej wersji w dependencies
mojej package.json
?
Odpowiedzi:
Z dokumentów npm :
git://github.com/<user>/<project>.git#<branch>
git://github.com/<user>/<project>.git#feature\/<branch>
Począwszy od wersji NP. 1.1.65, możesz to zrobić:
<user>/<project>#<branch>
git://github.com/<user>/<project>.git#feature/blah
działało, ale <user>/<project>.git#feature/blah
nie ... być może ich regex musi być bardziej zaawansowany, aby wziąć feature/blah
pod uwagę. To był npmv1.4.28
na komentarz @ dantheta:
Począwszy od npm 1.1.65, Github URL może być bardziej zwięzłym użytkownikiem / projektem. npmjs.org/doc/files/package.json.html Możesz dołączyć gałąź jak użytkownik / projekt # gałąź
Więc
"babel-eslint": "babel/babel-eslint",
Lub dla tagu v1.12.0 na jscs:
"jscs": "jscs-dev/node-jscs#v1.12.0",
Uwaga: jeśli użyjesz npm --save, dostaniesz dłuższy git
Od https://docs.npmjs.com/files/package.json#git-urls-as-dependencies
Adresy URL Git jako zależności
Adresy URL Git mogą mieć postać:
git: //github.com/user/project.git#commit-ish git + ssh: // użytkownik @ nazwa hosta: project.git # commit-ish git + ssh: //user@hostname/project.git#commit- ish git + http: //user@hostname/project/blah.git#commit-ish git + https: //user@hostname/project/blah.git#commit-ish
Zatwierdzenie może być dowolnym znacznikiem, sha lub gałęzią, które można podać jako argument do pobrania z git. Domyślnie jest to master.
Adresy URL GitHub
Począwszy od wersji 1.1.65, adresy URL GitHub mogą być nazywane po prostu „foo”: „user / foo-project”. Podobnie jak w przypadku adresów URL git, można dołączyć sufiks zatwierdzania. Na przykład:
{„name”: „foo”,
„version”: „0.0.0”,
„dependencies”: {„express”: „visionmedia / express”, „mocha”: „visionmedia / mocha # 4727d357ea”}}
Jeśli chcesz użyć devel
lub feature
rozgałęzić się lub nie opublikowałeś określonego pakietu w rejestrze NPM, lub nie możesz, ponieważ jest to moduł prywatny, możesz wskazać git://
URI zamiast numeru wersji w package.json
:
"dependencies": {
"public": "git://github.com/user/repo.git#ref",
"private": "git+ssh://git@github.com:user/repo.git#ref"
}
#ref
Część jest opcjonalna i może być gałąź (np master
) znacznik (np 0.0.1
) lub częściowe lub pełne popełnienia ID.
W najnowszej wersji NPM możesz po prostu:
npm install gitAuthor/gitRepo#tag
Jeśli repozytorium jest poprawnym pakietem NPM, zostanie automatycznie aliowane w pliku package.json jako:
{
"NPMPackageName": "gitAuthor/gitRepo#tag"
}
Jeśli możesz dodać to do odpowiedzi @justingordon, nie ma teraz potrzeby ręcznego aliasingu!
Jeśli to pomaga komukolwiek, próbowałem wszystkiego powyżej (tryb https w / token) - i nadal nic nie działało. Nie otrzymałem żadnych błędów, ale nic nie zostanie zainstalowane w node_modules lub package_lock.json. Gdybym zmienił token lub dowolną literę w nazwie repozytorium lub nazwie użytkownika itp. - Wystąpiłby błąd. Wiedziałem, że mam odpowiedni token i nazwę repozytorium.
W końcu zdałem sobie sprawę, że to dlatego, że nazwa zależności, którą miałem w pakiecie.json, nie zgadzała się z nazwą w pakiecie.json repozytorium, które próbowałem pobrać. Nawet instalacja npm --verbose nie mówi, że jest jakiś problem. Po prostu wydaje się ignorować błąd bez zależności.
user/project
. npmjs.org/doc/files/package.json.html Możesz dołączyć gałąź jakuser/project#branch