Skocz do zawartości
PL
Szukaj na Pecetowiczu
  • Utwórz konto

npm - pytania początkującego npmowicza


Rekomendowane odpowiedzi

Witajcie

Od pewnego czasu zacząłem korzystać z Cmdera oraz pakietów npm. Widzę w nim potencjał bo bardzo przyjemnie pobiera się to co chce bez konieczności grzebania po stronach.

Z racji, że nie ogarniam za bardzo z czym się to je mam parę pytań do osób, które korzystają z tego rozwiązania na co dzień.

1. Wpisując przykładowo polecenie npm install bootstrap po pobraniu pojawia się folder node_modules. Pytanie potem jak/w jaki sposób zaimplementować takiego bootstrapa do swojej strony html. Według dokumentacji bootstrapa należy skorzystać z tego polecenia: require('bootstrap');

1.1 Czy to polecenie: require('bootstrap') wystarczy i zaciągnie wszystko co potrzeba aby pakiet był w pełni sprawny?

1.2 Czy wygląda to tak samo/podobnie w przypadku innych pakietów? Przykład - Tutaj w sekcji: ES6 import & Require Usages  jest z kolei import Noty from 'noty';
 


2. Jeśli chce opublikować stronę co w takim razie robię z node_modules? Całą zawartość kopiuję? A może robię jakieś inne magiczne rzeczy za pomocą komend (nie wiem więc opisuje to w taki sposób ^^)?

Szukałem w necie, czytałem trochę dokumentacji npm ale nie za bardzo to rozumiem. Byłbym wdzięczny za wyjaśnienie

Odnośnik do komentarza
Udostępnij na innych stronach

Po pierwsze zamień npm na yarn, jest dużo szybsze, a zasada działania jest ta sama.

Jeżeli nie korzystasz z żadnego bundlera czy task runnera z odpowiednimi zadaniami, to zainstalowane paczki, które dodają się do node_modules musisz ręcznie kopiować. W przypadku gdy operujesz na pliku JS wystarczy dać zwykłe require(...) ewentualnie import, zależy czego używasz. Gdy chcesz publikować stronę z wykorzystaniem zależności, to nie kopiujesz tego katalogu node_modules, a jedynie udostępniasz plik package.json, dzięki któremu za pomocą komendy `npm install / yarn install` automatycznie zainstalują się wszelkie zależności użyte przez Ciebie. No i ważne, jeżeli chcesz korzystać z tego repozytorium to w projekcie zawszę na samym początku wywołaj komendę `npm init / yarn init` by utworzyć plik package.json z informacjami o projekcie.

Odnośnik do komentarza
Udostępnij na innych stronach

Katalogu /node_modules/ nie wrzucasz, to ma być tylko jako repo w środowisku developerskim. Po kompilacji tego co potrzebujesz (w tym Twoich skryptów), wszystkie potrzebne pliki zazxwyczaj znajdują się w katalogu /public/ albo podobnym...

Co do importowania zależności - zależy od paczki.

Raz wystarczy `require('bootstrap')` a raz trzeba podać pełną ścieżkę do tego - przykład: reset-and-normalize-css. Jak masz ogarnięty edytor, to będzie podpowiadał

Odnośnik do komentarza
Udostępnij na innych stronach

@息を切らしました Aktualnie działam sobie w electronie i wygląda to tak, że mam ten package.json a w Cmderze wpisuję npm start  w package.json mam to ustawione na "electron ." - i w ten sposób uruchamiam całego electrona.

"scripts": {
    "start": "electron ."
  },

Mam zaistalowanego node.js na kompie. Nawet nie wiem czy to jest jakiś bundler / task runner  

28 minut temu, 息を切らしました napisał:

a jedynie udostępniasz plik package.json

Czyli przed wrzuceniem stronki wykonuję polecenie npm install / yarn install i stworzy się odpowiedni folder z tymi podpiętymi rzeczami?

Odnośnik do komentarza
Udostępnij na innych stronach

(edytowane)

Na stronie mają być już pliki po kompilacji. Żadnego package.json czy katalogu /node_modules/!

/node_modules/ zawsze na środowisku developerskim, a package.json w repo na GitHub / GitLab.

Edytowane przez El Profesor
Odnośnik do komentarza
Udostępnij na innych stronach

bundler*

4 minuty temu, Mativve napisał:

Czyli przed wrzuceniem stronki wykonuję polecenie npm install / yarn install i stworzy się odpowiedni folder z tymi podpiętymi rzeczami?

Nie, Ty jako developer i twórca aplikacji/strony tego nie robisz. Polecenie to wykonuje osoba, która chce uruchomić Twój projekt na swoim serwerze i dostarcza sobie tym samym wszystkich zależności, z którymi Ty pracowałeś. 

NodeJS nie jest ani bundlerem, ani task runnerem  Bundlerem jest Webpack na przykład, zaś task runnerem może być GulpJS.

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli jeśli będę chciał przygotować stronę do eksportu i opublikowania na hostingu (nie git) to korzystam z polecenia npm install / yarn install, a potem edytuję ścieżki do tych plików i w ostatecznej paczce nie wrzucam ani node_modules ani package.json. Dobrze to rozumiem?  

#EDIT: Głównie mi chodzi o proces publikowania strony na hostingu.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli chcesz od razu wrzucić ją na hosting to wrzucasz tylko skompilowane/gotowe do użycia pliki JS/CSS/HTML czy czego tam jeszcze potrzebujesz. Wszelkie inne, które były niezbędne w procesie developerskim ignorujesz.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za odpowiedzi, będę działać. Gdyby coś będę pytał  

Odnośnik do komentarza
Udostępnij na innych stronach

Kontynuuj dyskusję

Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.

  • Dodaj nową pozycję...
  • Dodaj nową pozycję...