npm init în Node.js

npm și pachete Toate versiunile npm (npm init <inițializator>: npm 6.1)

Creează fișierul package.json al unui proiect nou; cu -y acceptă valorile implicite fără întrebări.

Sintaxă
npm init [-y]
npm init <inițializator>
npm pkg set <câmp>=<valoare>
npm pkg get <câmp>

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.json apare acolo și toate pachetele instalate ulterior ajung în node_modules din 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 .js care folosesc import dau 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ă.