[[oktatas:web:nodejs|< Node.js]]
====== Csomag publikálása ======
* **Szerző:** Sallai András
* Copyright (c) 2024, Sallai András
* Szerkesztve: 2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Név választás =====
Válasszunk egy nevet, és keressünk rá a csomag nevére:
* https://npmjs.com
Ha nem foglalt, akkor folytassuk.
===== package.json =====
Hozzuk létre a package.json:
npm init -y
Szerkesszük:
{
"name": "valami",
"version": "0.0.1",
"description": "csomag leírása",
"bin": {
"valami": "valami.js"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Nagy János",
"license": "MIT"
}
===== Tároló =====
{
"repository": {
"type": "git",
"url": "https://github.com/valaki/valami.git"
}
}
{
"name": "valami",
"version": "0.0.1",
"description": "csomag leírása",
"bin": {
"valami": "valami.js"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Nagy János",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/valaki/valami.git"
}
}
===== Dokumentáció =====
Hozzuk létre egy README.md nevű fájlt. Írjuk le mi ez a csomag, és hogyan kell használni.
# Csomag
A csomagról ...
===== A parancs elkészítése =====
#!/usr/bin/env node
console.log('működik')
===== Parancs kipróbálása =====
npm link
Linuxon:
sudo npm link
Linuxon létrejön egy link /usr/local/bin/valami könyvtárban. Ez a link a következő helyre mutat:
../lib/node_modules/mentol/valami.js
Az /usr/local/lib/node_modules/valami szintén egy link ami a felhasználó könyvtárába mutat, például:
/home/janos/dev/mentol
===== Hozzáférés =====
Készítsünk hozzáférést a webhelyen:
* https://npmjs.com
===== Feltöltés =====
Jelentkezzünk be:
npm login
Publikálás:
npm publish
Újabb publikáláshoz változtatni kell valamit a kódon és új verziószámot beírni a package.json fájlba.
===== Az npm create =====
Készítünk egy create-valami nevű NodeJS sablont.
Feltöltjük majd, így használjuk:
npm create valami
A sablon létrehozásakor hajtsuk végre az outfile.cjs scriptet:
"bin": {
"create-valami": "outfile.cjs"
},
#!/usr/bin/env node
//...
===== Aktuális könyvtár olvasása =====
Ha olyan csomagot fejlesztünk, ami hatással lesz az a felhasználás helyére, akkor kérdéses lehet, hogyan kérdezzük le a felhasználás helyének aktuális könyvtárát, és hogyan kérdezzük le csomag saját könyvtárának útvonalát.
A csomag saját helyének lekérdezése:
const filePath = path.join(__dirname, 'package.json');
A felhasználás helyén, az aktuális könyvtár lekérdezése.
const currentDirectory = process.cwd();
const filePath = currentDirectory + '/package.json'
===== Linkek =====
* https://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm.html (2024)