Czy pakiet.json ma być edytowany ręcznie? Czy program taki jak npm nie może po prostu przejrzeć plików, wyświetlić instrukcji „wymagają”, a następnie użyć ich do umieszczenia niezbędnych wpisów w pliku package.json? Czy są jakieś takie programy?
412
npm link
Odpowiedzi:
Plik package.json jest używany przez npm do poznania twojego projektu node.js.
Służy
npm init
do generowania plików package.json dla Ciebie!Jest dostarczany w pakiecie z npm. Przeczytaj dokumentację tutaj: https://docs.npmjs.com/cli/init
Istnieje również oficjalne narzędzie, którego można użyć do programowego wygenerowania tego pliku: https://github.com/npm/init-package-json
źródło
npm init
właśnie tego szukałem! Poza tym zwykle biegam,npm shrinkwrap
aby utworzyćnpm-shrinkwrap.json
pliknpm init
: Użyjnpm install <pkg> --save
później, aby zainstalować pakiet i zapisać go jako zależność w pliku package.json.npm init
w konsoli Menedżera pakietów z programu Visual Studio 2015 po prostu wyświetla[...] Press ^C at any time to quit.
i zatrzymuje się, nie pytając o nic ani nie tworząc pliku json. Czy coś brakuje?npm init --force --yes
to jedyna linijka, która wygenerowała ten plikPo pierwsze, biegnij
... zada Ci kilka pytań ( najpierw przeczytaj ) na temat twojego projektu / pakietu, a następnie wygeneruje dla Ciebie plik package.json.
Następnie, gdy masz plik package.json, użyj
lub
... zainstalować zależność i automatycznie dołączyć go do swojej
package.json
„sdependencies
listy.(Uwaga: Może być konieczne ręczne dostosowanie zakresów wersji dla zależności).
źródło
package.json
, zwykle jest to obsługiwane automatycznie.--save
nie jest już konieczne w nowszych wersjach npmWłaśnie napisałem prosty skrypt do zbierania zależności w ./node_modules. W tej chwili spełnia moje wymagania. Może to pomóc niektórym innym, zamieszczam to tutaj.
W moim przypadku powyższy skrypt generuje:
Teraz możesz je skopiować i wkleić. Baw się dobrze!
źródło
npm ls --depth=0
wydrukuje mniej więcej to samo (nie jestem pewien, czy tak było w 2012 roku)a
, a pakieta
musi pakietyb
ic
skrypt ten wyjście będzie wszystkie poziomy, taka
,b
,c
który jest nie poprawny. Powinien tylko wyświetlaća
, paczki zostaną automatycznie rozwiązane.npm init
aby utworzyć plik package.json, a następnie użyć
ls node_modules/ | xargs npm install --save
aby wypełnić moduły, które masz w folderze node_modules.
Edycja: @paldepind wskazał, że drugie polecenie jest zbędne, ponieważ
npm init
teraz automatycznie dodaje to, co masz w folderze node_modules /. Nie wiem, czy zawsze tak było, ale teraz przynajmniej działa bez drugiego polecenia.źródło
npm init
automatycznie dodałem zależności na podstawie zainstalowanych pakietów i że nie było potrzeby uruchamiania drugiego polecenia.npm dedupe
, który wyciąga zależności, które są współużytkowane przez moduły z tych modułów i przechowuje je na najwyższym poziomienode_modules
katalogu. Ale to nie dotykapackage.json
! Dzięki temu możesz zatwierdzać i udostępniać swoją deduplikowaną konfigurację.Wiersz poleceń :
utworzy plik package.json
Aby zainstalować, zaktualizować i odinstalować pakiety w zależności od pliku package.json:
Wiersz poleceń :
automatycznie doda najnowszą wersję pakietu pod zależnościami do pliku package.json
DAWNY:
Wiersz poleceń :
automatycznie doda również najnowszą wersję pakietu pod zależnościami do pliku package.json
jeśli potrzebujesz konkretnej wersji pakietu, użyj tego wiersza poleceń :
automatycznie doda określoną wersję pakietu w zależności od pliku do pliku package.json
DAWNY:
jeśli potrzebujesz określonego zakresu wersji pakietu, użyj tego wiersza poleceń :
automatycznie doda najnowszą wersję pakietu między zakresem wersji w zależnościach do pliku package.json
DAWNY:
Aby uzyskać więcej informacji na temat pisania wersji dla pakietu npm Doc
Wiersz poleceń :
zaktualizuje pakiety do pliku package.json i automatycznie doda zaktualizowaną wersję dla wszystkich pakietów zależnych do pliku package.json
Wiersz poleceń :
automatycznie usunie pakiet z zależności do pliku package.json i usunie pakiet z folderu node_module
źródło
Uruchamianie
npm init -y
sprawia, że maszpackage.json
wszystkie ustawienia domyślne.Następnie możesz
package.json
odpowiednio zmienić.To oszczędza czas wiele razy, uniemożliwiając naciśnięcie
enter
każdego polecenia wnpm init
źródło
Teraz możesz korzystać z narzędzia Yeoman - Nowoczesne narzędzie do rusztowania aplikacji sieci Web na terminalu węzłowym, wykonując 3 proste kroki.
Najpierw musisz zainstalować yo i inne wymagane narzędzia:
Aby rusztować aplikację internetową, zainstaluj generator generator-webapp :
Uruchom i ... wszystko gotowe:
Yeoman może napisać pełny kod dla całej aplikacji internetowej lub sterowników i modeli. Może uruchomić serwer WWW z podglądem na żywo w celu edycji i kompilacji; nie tylko możesz uruchamiać testy jednostkowe, minimalizować i konkatenować kod, optymalizować obrazy i więcej ...
Yeoman (yo) - narzędzie do rusztowań, które oferuje ekosystem rusztowań specyficznych dla ram, zwanych generatorami, które mogą być użyte do wykonania niektórych żmudnych zadań wspomnianych wcześniej.
Grunt / gulp - służy do budowania, podglądu i testowania projektu.
Bower - służy do zarządzania zależnościami, dzięki czemu nie trzeba już ręcznie pobierać bibliotek frontonu.
źródło
Na podstawie odpowiedzi Pylinux poniżej znajduje się rozwiązanie dla systemu operacyjnego Windows,
Mam nadzieję, że to pomoże.
źródło
użyj polecenia npm init -f, aby wygenerować plik package.json, a następnie użyj --save po każdym poleceniu, aby każdy moduł był automatycznie aktualizowany w pakiecie.json na przykład: npm install express --save
źródło
1. Wybór
Jeśli korzystasz z Git i GitHub:
generate-package
prościej niżnpm init
.jeszcze
i / lub nie podoba ci się
package.json
szablon, który generuje pakiet lubnpm init
generuje:możesz wygenerować własny szablon za pomocą aplikacji do rusztowań, takich jak generowanie , żagle lub szlachta .
2. Trafność
Ta odpowiedź dotyczy marca 2018 r. W przyszłości dane z tej odpowiedzi mogą być nieaktualne.
Autor tej odpowiedzi osobiście wykorzystał pakiet generujący w marcu 2018 r.
3. Ograniczenia
Do korzystania z pakietu-generatora potrzebujesz git i GitHub.
4. Demonstracja
Na przykład tworzę pusty folder
sasha-npm-init-vs-generate-package
.4.1 pakiet generowania
Komenda:
package.json
:4.2 npm init
Myślę, że
generate-package
prościej, żenpm init
.5. Dostosowywanie
Które tworzą własny
package.json
szablon, zobacz przykłady generowania i Yeoman .źródło