A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat Következő változat | Előző változat | ||
oktatas:web:nodejs:npm_projekt [2021/10/16 09:47] admin [Csak npm] |
— (aktuális) | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[oktatas:web:nodejs|< NodeJS]] | ||
- | ====== Npm projekt ====== | ||
- | * **Szerző:** Sallai András | ||
- | * Copyright (c) Sallai András, 2019, 2021 | ||
- | * [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] | ||
- | * Web: https://szit.hu | ||
- | |||
- | ===== NodeJS projekt ===== | ||
- | Az npm csomagkezelő NodeJS projekt létrehozására is használható, | ||
- | ami a valójában egy package.json fájl létrehozása. | ||
- | A package.json egy "manifest" fájl, amely tartalmazza a projekt | ||
- | nevét, verzióját, egy JavaScrit belépési pontot, feladatokat (scriptek), | ||
- | a projekt kulcsszavait, tulajdonos nevét, a projekt licencét és a projekt | ||
- | függőségeit. | ||
- | |||
- | |||
- | Gyakorlásként, hozzunk létre egy app01 nevű projektet: | ||
- | <code> | ||
- | mkdir app01 | ||
- | cd app01 | ||
- | npm init -y | ||
- | </code> | ||
- | |||
- | Az npm init egy interaktív program, amely bekéri a projektünk adatait. | ||
- | Ha futtatáskor megadunk egy -y kapcsolót is, akkor kérdés nélkül létrejön | ||
- | egy alapértelmezett package.json fájl: | ||
- | |||
- | npm init -y | ||
- | |||
- | A létrejött a package.json fájl a következő tartalommal: | ||
- | <code javascript package.json> | ||
- | { | ||
- | "name": "app01", | ||
- | "version": "1.0.0", | ||
- | "description": "", | ||
- | "main": "index.js", | ||
- | "scripts": { | ||
- | "test": "echo \"Error: no test specified\" && exit 1" | ||
- | }, | ||
- | "keywords": [], | ||
- | "author": "", | ||
- | "license": "ISC" | ||
- | } | ||
- | </code> | ||
- | |||
- | A fájlban javíthatjuk az adatokat. Létrejött egy NodejJS projekt, amelyet | ||
- | folytathatunk, például csomagok telepítésével. | ||
- | |||
- | Ha az "npm init -y" parancsot "-y" nélkül hajtjuk végre, a parancs interaktívan | ||
- | bekéri a projekt adatait. | ||
- | |||
- | |||
- | |||
- | ===== Függőségek telepítése ===== | ||
- | |||
- | |||
- | Egy projekthez háromféle függőséget, illetve csomagot telepíthetünk: | ||
- | |||
- | * a projekttől külön, globálisan telepítve | ||
- | * a projekten belül: | ||
- | * fejlesztési időben a projektnek függősége | ||
- | * terjesztési időben a projektnek függősége | ||
- | |||
- | A projekttől külön, globálisan telepített csomag általában egy parancs, amit később | ||
- | más projekteknél is használhatunk. Ilyen lehet például a gulp-cli csomag, aminek hatására | ||
- | kapunk egy gulp parancsot, és azt későbbi projekteknél is használhatunk. | ||
- | |||
- | |||
- | A fejlesztési időben telepített csomagok részt vesznek a fejlesztésben, de a projekt terjesztett változatában nem fognak szerepelni. | ||
- | |||
- | A terjesztéshez telepített függőségek fejlesztési és produktum közreadása során is a projekt részei maradnak. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | Utasítások: | ||
- | |||
- | * npm install <nowiki>--save</nowiki> <csomagnév> | ||
- | * csomag telepítése helyben | ||
- | * npm install -g <csomagnév> | ||
- | * csomag telepítése globálisan | ||
- | * rendszergazdai jogok szükségesek (SUDO) | ||
- | * npm install <nowiki>--save-dev</nowiki> <csomagnév> | ||
- | * csak fejlesztési időben szükséges csomag | ||
- | |||
- | |||
- | ==== Gyakorlás ==== | ||
- | |||
- | Hozzunk létre egy projektet: | ||
- | mkdir app01 | ||
- | cd app01 | ||
- | npm init -y | ||
- | |||
- | Telepítsük a gulp-cli csomagot: | ||
- | npm install --global gulp-cli | ||
- | |||
- | A telepítés után kapunk egy gulp parancsot, ellenőrizzük: | ||
- | gulp --version | ||
- | |||
- | |||
- | Telepítsük a bootstrap csomagot terjesztéshez: | ||
- | npm install --save bootstrap | ||
- | |||
- | A projekt könyvtárában létrejön egy node_modules nevű könyvtár, ahol | ||
- | megjelenik a bootstrap függőségeivel együtt. | ||
- | |||
- | Telepítsük a lite-server csomagot, fejlesztéshez: | ||
- | npm install --save-dev lite-server | ||
- | |||
- | |||
- | |||
- | ===== Express projekt ===== | ||
- | |||
- | <code> | ||
- | mkdir projekt01 | ||
- | cd projekt01 | ||
- | npm init | ||
- | </code> | ||
- | |||
- | Az npm init lehetséges kimenete: | ||
- | <code> | ||
- | $ npm init | ||
- | This utility will walk you through creating a package.json file. | ||
- | It only covers the most common items, and tries to guess sensible defaults. | ||
- | |||
- | See `npm help json` for definitive documentation on these fields | ||
- | and exactly what they do. | ||
- | |||
- | Use `npm install <pkg>` afterwards to install a package and | ||
- | save it as a dependency in the package.json file. | ||
- | |||
- | Press ^C at any time to quit. | ||
- | package name: (projekt01) | ||
- | version: (1.0.0) | ||
- | description: teszt | ||
- | entry point: (index.js) | ||
- | test command: | ||
- | git repository: | ||
- | keywords: | ||
- | author: Nagy János | ||
- | license: (ISC) MIT | ||
- | About to write to /home/janos/projekt01/package.json: | ||
- | |||
- | { | ||
- | "name": "projekt01", | ||
- | "version": "1.0.0", | ||
- | "description": "teszt", | ||
- | "main": "index.js", | ||
- | "scripts": { | ||
- | "test": "echo \"Error: no test specified\" && exit 1" | ||
- | }, | ||
- | "author": "Nagy János", | ||
- | "license": "MIT" | ||
- | } | ||
- | |||
- | |||
- | Is this OK? (yes) yes | ||
- | </code> | ||
- | |||
- | |||
- | Telepítsük az express csomagot: | ||
- | npm install express | ||
- | |||
- | Lehetséges kimenet: | ||
- | <code> | ||
- | npm install express | ||
- | npm notice created a lockfile as package-lock.json. You should commit this file. | ||
- | npm WARN projekt01@1.0.0 No repository field. | ||
- | |||
- | + express@4.16.4 | ||
- | added 48 packages from 36 contributors and audited 121 packages in 3.732s | ||
- | found 0 vulnerabilities | ||
- | </code> | ||
- | |||
- | |||
- | Írjuk meg a programunkat: | ||
- | <code javascript index.js> | ||
- | const express = require('express') | ||
- | const app = express(); | ||
- | |||
- | app.get('/', (req, res) => { | ||
- | res.send('Helló Világ!') | ||
- | }); | ||
- | |||
- | app.listen(8000, () => { | ||
- | console.log('Példa alkalmazás port 8000') | ||
- | }); | ||
- | </code> | ||
- | |||
- | |||
- | <code> | ||
- | $ node index.js | ||
- | Példa alkalmazás port 8000 | ||
- | </code> | ||
- | |||
- | |||
- | |||
- | Böngészőbe írjuk be: | ||
- | http://192.168.5.100:8000/ | ||
- | |||
- | ===== package-lock.json ===== | ||
- | |||
- | |||
- | A package-lock.json fájl egy automatikusan generálódik, | ||
- | amikor az npm módosítja node_modules fát, vagy | ||
- | a package.json fájlt. Leírja a telepített fát, | ||
- | amely alapján később bármikor azonos fa létrehozható, | ||
- | függetlenül a függőségi frissítésektől. | ||
- | |||
- | |||
- | |||
- | ===== Forrás ===== | ||
- | * https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/development_environment (2019) | ||
- | * https://docs.npmjs.com/cli/v7/configuring-npm/package-lock-json (2021) | ||
- | |||
- | |||