Ce face npm init
npm init pornește un proiect Node.js: creează package.json, fișierul care descrie proiectul (nume, versiune, scripturi, dependențe). Fără opțiuni, comanda pune câteva întrebări în terminal (numele, versiunea, descrierea, fișierul principal, licența); apasă Enter ca să accepți valoarea propusă între paranteze.
Cu -y (sau --yes) nu mai întreabă nimic și scrie direct valorile implicite: numele directorului, versiunea 1.0.0, licența ISC. npm 11 adaugă și "type": "commonjs"; dacă vrei module ES (import/export) în fișiere .js, schimbă în "module".
npm init <inițializator> rulează un generator de proiect: npm init vite rulează pachetul create-vite, npm init svelte rulează create-svelte. Pentru a modifica package.json din terminal, fără editor, folosește npm pkg set, npm pkg get și npm pkg delete.
Parametri
| Parametru | Descriere |
|---|---|
-y, --yes |
Folosește valorile implicite, fără întrebări. |
<inițializator> |
Numele unui generator: npm init x rulează pachetul create-x cu npm exec. |
-w <director> |
Creează un spațiu de lucru (workspace) nou în directorul dat și îl adaugă în package.json-ul rădăcină. |
npm pkg set câmp=valoare |
Scrie un câmp în package.json. Câmpurile imbricate se scriu cu punct: scripts.build=.... |
Exemple
Exemplul 1: Proiect nou cu valorile implicite
Creezi directorul, intri în el și generezi package.json. npm afișează fișierul scris.
mkdir magazin && cd magazin
npm init -y
Ieșire în terminal
Wrote to /home/ana/proiecte/magazin/package.json:
{
"name": "magazin",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs"
}
Exemplul 2: Modifici package.json din terminal cu npm pkg
Treci proiectul pe module ES și adaugi un script, apoi citești câteva câmpuri. Comenzile set nu afișează nimic.
npm pkg set type=module
npm pkg set scripts.salut="node salut.mjs"
npm pkg get name version type
Ieșire în terminal
{
"name": "magazin",
"version": "1.0.0",
"type": "module"
}
Exemplul 3: Proiect pornit dintr-un generator
npm init vite@latest este același lucru cu npx create-vite@latest: descarcă generatorul și îl rulează. Argumentele de după -- ajung la generator (aici, șablonul ales).
npm init vite@latest catalog-carti -- --template vanilla
cd catalog-carti
npm install
Greșeli frecvente
- Rulezi
npm initîn directorul greșit (de exemplu în directorul personal):package.jsonapare acolo și toate pachetele instalate ulterior ajung înnode_modulesdin acel director. - Alegi un nume cu litere mari, spații sau diacritice: npm acceptă doar litere mici, cifre,
-,.,_(și@scop/la început), mai ales dacă vrei să publici pachetul. - Uiți de
"type": cu"commonjs", fișierele.jscare folosescimportdau eroare de sintaxă. Schimbă în"module"sau folosește extensia.mjs.
Comenzi înrudite
package.json: Fișierul de configurare al unui proiect Node.js: nume, versiune, tipul modulelor, scripturi, dependențe și versiunea Node cerută.npm install: Instalează pachete din registrul npm în node_modules și le trece în package.json și package-lock.json.npm run: Rulează un script din câmpul „scripts” al package.json, cu node_modules/.bin în PATH și cu scripturile pre/post.npx / npm exec: Rulează comanda unui pachet npm din proiect sau descărcat temporar, fără instalare globală.npm workspaces: Mai multe pachete într-un singur depozit (monorepo), cu un singur node_modules și comenzi rulate în toate deodată.