Jak zainstalować prywatny moduł NPM bez własnego rejestru?
Wziąłem jakiś współdzielony kod i umieściłem go w module NPM, którego nie chcę przesyłać do centralnego rejestru. Pytanie, Jak zainstalować go z innych projektów?
Oczywistym sposobem jest prawdopodobnie skonfigurowanie własnego rejestru NPM, ale zgodnie z dokumentacją, wiąże się to z wieloma kłopotami.
Czy mogę po prostu zainstalować moduł NPM, który znajduje się na lokalnym systemie plików, a może nawet z git?
npm install --from-git git@server:project
12 answers
cd somedir
npm install .
Lub
npm install path/to/somedir
somedir
musi zawierać package.json
w środku.
O git też wie:
npm install git://github.com/visionmedia/express.git
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-30 21:47:13
W twoich prywatnych modułach npm dodaj
"private": true
Do twojej paczki.json
Następnie, aby odwołać się do prywatnego modułu w innym module, użyj tego w swoim pakiecie.json
{
"name": "myapp",
"dependencies": {
"private-repo": "git+ssh://[email protected]:myaccount/myprivate.git#v1.0.0",
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-21 16:27:48
Tak, możesz! Z docs https://docs.npmjs.com/cli/installCzy mogę po prostu zainstalować pakiet NPM, który znajduje się na lokalnym systemie plików, a może nawet z Gita?
Czy npm nie jest genialne?Pakiet to:
- a) folder zawierający program opisany przez pakiet.plik json
- b) gziped tarball zawierający (a)
- c) adres url, który rozwiązuje się do (b)
- d) A
<name>@<version>
który jest opublikowany w rejestrze za pomocą (c)- e) a
<name>@<tag>
które wskazuje na (d)- f) A
<name>
który ma znacznik" najnowsze " (e)- g) a {[3] } które rozwiązuje się do (b)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-14 16:31:37
Aktualizacja Styczeń 2016
oprócz innych odpowiedzi, czasami istnieje scenariusz, w którym chcesz mieć prywatne moduły dostępne w kontekście zespołu.
ZARÓWNO Github jak i Bitbucket wspierają koncepcję generowania klucza API team . Ten klucz API może być użyty jako hasło {[4] } do wykonywania żądań API jako ten zespół.
W twoich prywatnych modułach npm dodaj
"private": true
Do twojego Pakiet.json
Następnie, aby odwołać się do prywatnego modułu w innym module, użyj tego w swoim pakiecie.json
{
"name": "myapp",
"dependencies": {
"private-repo":
"git+https://myteamname:[email protected]/myprivate.git",
}
}
Gdzie nazwa zespołu = myteamname i Klucz API = Aqqtcplwfzlumj0middrgcbsaq5d6xg4
Tutaj odwołuję się do bitbucket repo, ale jest prawie identyczny z github.
Wreszcie, jako alternatywa, jeśli naprawdę nie masz nic przeciwko płaceniu $7 miesięcznie (w momencie pisania), możesz teraz mieć prywatne Moduły NPM Z pudełko.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-13 00:11:07
FWIW: miałem problemy z tymi wszystkimi odpowiedziami, gdy miałem do czynienia z prywatnym repozytorium organizacji.
Zadziałało dla mnie:
npm install -S "git+https://[email protected]/orgname/repositoryname.git"
Na przykład:
npm install -S "git+https://[email protected]/netflix/private-repository.git"
Nie jestem do końca pewien, dlaczego inne odpowiedzi nie działały dla mnie w tym jednym przypadku, ponieważ są to, co próbowałem najpierw zanim trafiłem na Google i znalazłem tę odpowiedź. A inne odpowiedzi są tym, co robiłem w przeszłości.
Mam nadzieję, że to pomoże komuś innemu.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-20 21:45:11
Miałem ten sam problem i po kilku poszukiwaniach znalazłem Reggie ( https://github.com/mbrevoort/node-reggie ). wygląda całkiem solidnie. Pozwala na lekkie publikowanie modułów NPM na prywatnych serwerach. Nie jest idealny (brak uwierzytelniania po instalacji), i jest jeszcze bardzo młody, ale Przetestowałem go lokalnie i wydaje się robić to, co mówi, że powinien zrobić.
To znaczy... (i to tylko z ich dokumentów)npm install -g reggie
reggie-server -d ~/.reggie
Następnie cd do katalogu modułu i...
reggie -u http://<host:port> publish
reggie -u http://127.0.0.1:8080 publish
Na koniec, możesz instalować pakiety z reggie używając tego adresu url albo w poleceniu direct npm install, albo z pakietu.json... like so
npm install http://<host:port>/package/<name>/<version>
npm install http://<host:port>/package/foo/1.0.0
Lub..
dependencies: {
"foo": "http://<host:port>/package/foo/1.0.0"
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-16 23:04:40
Uporządkuj swój kod w przystępny sposób, jak poniżej. Jeśli jest to dla ciebie możliwe.
NodeProjs\Apps\MainApp \ package.json
NodeProjs\Modules\DataModule \ package.json
Wewnątrz MainApp @ NodProjs\Apps \ MainApp\
npm install --S ../../Modules/DataModule
Może być konieczna aktualizacja pakietu.json as:
"dependencies": {
"datamodule": "../../Modules/DataModule"
}
To zadziałało na moją sytuację.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-14 20:32:47
Zaczynając od odpowiedzi arcseldona , stwierdziłem, że nazwa drużyny była potrzebna w adresie URL tak:
npm install --save "git+https://myteamname@[email protected]/myteamname/myprivate.git"
I zauważ, że klucz API jest dostępny tylko dla zespołu, a nie indywidualnych użytkowników.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:37
Npm teraz zapewnia nieograniczoną prywatne hostowane Moduły ZA $7/użytkownik/miesiąc używany tak
cd private-project
npm login
W pakiecie json set "name": " @username/private-project"
npm publish
Następnie wymagaj swojego projektu:
cd ../new-project
npm install --save @username/private-project
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-03 06:23:20
Config do zainstalowania z publicznego repozytorium Github, nawet jeśli komputer znajduje się pod firewallem:
dependencies: {
"foo": "https://github.com/package/foo/tarball/master"
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-04 10:59:05
Używam poniższego z prywatnym repozytorium github:
npm install github:mygithubuser/myproject
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-14 20:58:22
Bardzo proste -
npm config set registry https://path-to-your-registry/
Ustawia registry = "https://path-to-your-registry"
tę linię na /Users/<ur-machine-user-name>/.npmrc
Wszystkie wartości, które ustawiłeś jawnie lub zostały ustawione domyślnie, można zobaczyć za pomocą - npm config list
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-27 09:05:34