Ebben a projektben a Node.js-t csak telepítésre használjuk.
mkdir projket01 cd projekt01 npm init
npm install jquery
A jQuery csomag nem jó, elavult, írjuk kisbetűvel.
Többféle szerver áll rendelkezésre; http-server, lite-server, live-server. Itt a live-servert fogjuk használni.
npm install live-server --save-dev
Használat:
npx live-server
A package.json fájlba a scripts tulajdonsághoz felvehetünk egy start bejegyzést:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "live-server" },
A bejegyzés után a szerver így is indítható:
npm start
Ha közzé tesszük a weblapot, a ./node_modules/jquery/dist/jquery.js hivatkozás a weboldalon nem szokott jó lenni. A publikált HTML oldalak JavaScript programozói könyvtárait, általában egy /lib nevű könyvtárba tesszük. Ha így hagyjuk a <script> elemet, a feltöltés előtt javítani kell. Jó lenne egy olyan megoldás, ahol eleve /lib/jquery.js hivatkozást írunk.
Javítsuk a start bejegyzésünket:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "live-server --mount='/lib/jquery.js:./node_modules/jquery/dist/jquery.js'" },
Ha a HTML oldalon hivatkozunk a lib/jquery.js célra, akkor átirányítás történik a node_modules/jquery/dist/jquery.js, ahol ténylegesen megtalálható a fájl.
A forrásfájlokat egy src könyvtárba szokás tenni.
projekt01/ |-node_modules/ | `-... |-src/ | |-index.html | `-app.js `package.json
Javítsuk a package.json fájlban:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "live-server ./src --mount='/lib/jquery.js:./node_modules/jquery/dist/jquery.js'" },
Böngésző nélkül nincs window, document objektum. A tesztelés így nem megy. Megoldás a jsdom csomag
npm install jsdom --save-dev
const jsdom = require('jsdom'); const dom = new jsdom.JSDOM(` <html> <head> </head> <body> <h1>Valami</h1> </body> </html>` ); const $ = require('jquery')(dom.window); $('h1').html('más'); const content = dom.window.document.querySelector('body'); console.log(content.textContent);
Futtassuk:
node index.js
const { JSDOM } = require('jsdom'); const { window } = new JSDOM('<h1>Valami</h1>'); const $ = require('jquery')(window); $('h1').html('más'); const content = window.document.querySelector('body'); console.log(content.textContent);
A JSDOM() konstruktorban egy HTML oldalt kell átadni, string típusként. Ez lehet komplett weblap is.
Futtassuk:
node index.js
További információ: