< NodeJS

Npm projekt

Szerző: Sallai András

Copyright © Sallai András, 2019, 2021

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:

mkdir app01
cd app01
npm init -y

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:

{ "name": "app01", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }

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 --save <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 --save-dev <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

mkdir projekt01
cd projekt01
npm init

Az npm init lehetséges kimenete:

$ 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

Telepítsük az express csomagot:

npm install express

Lehetséges kimenet:

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

Írjuk meg a programunkat:

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') });

$ node index.js
Példa alkalmazás port 8000

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)