Ricerca…


Osservazioni

Puoi creare package.json con

npm init

che ti chiederà informazioni di base sui tuoi progetti, incluso l' identificatore della licenza .

Definizione del progetto di base

{
    "name": "my-project",
    "version": "0.0.1",
    "description": "This is a project.",
    "author": "Someone <[email protected]>",
    "contributors": [{
        "name": "Someone Else",
        "email": "[email protected]"
    }],
    "keywords": ["improves", "searching"]
}
Campo Descrizione
nome un campo obbligatorio per un pacchetto da installare. Deve essere minuscolo, parola singola senza spazi. (Sono consentiti trattini e trattini bassi)
versione un campo obbligatorio per la versione del pacchetto che utilizza la versione semantica .
descrizione una breve descrizione del progetto
autore specifica l'autore del pacchetto
contributori una serie di oggetti, uno per ogni contributore
parole chiave una serie di stringhe, questo aiuterà le persone a trovare il tuo pacchetto

dipendenze

"dipendenze": {"nome-modulo": "0.1.0"}

  • esatto : 0.1.0 installerà quella versione specifica del modulo.
  • la versione minore più recente : ^0.1.0 installerà la versione minore più recente, ad esempio 0.2.0 , ma non installerà un modulo con una versione maggiore maggiore, ad esempio 1.0.0
  • patch più recente : 0.1.x o ~0.1.0 installerà la versione di patch più recente disponibile, ad esempio 0.1.4 , ma non installerà un modulo con versione maggiore o minore maggiore, ad es. 0.2.0 o 1.0.0 .
  • carattere jolly : * installerà l'ultima versione del modulo.
  • repository git : il seguente installerà un tarball dal ramo master di un repository git. Possono anche essere forniti #sha , #tag o #branch :
    • GitHub : user/project o user/project#v1.0.0
    • url : git://gitlab.com/user/project.git o git://gitlab.com/user/project.git#develop
  • percorso locale : file:../lib/project

Dopo averli aggiunti al pacchetto package.json, utilizzare il comando npm install nella directory del progetto nel terminale.

devDependencies

"devDependencies": {
    "module-name": "0.1.0"
}

Per le dipendenze richieste solo per lo sviluppo, come test di estensioni per i proxy di stile. Queste dev-dependencies non verranno installate quando si esegue "npm install" in modalità produzione.

Script

È possibile definire script che possono essere eseguiti o attivati ​​prima o dopo un altro script.

{
  "scripts": {
    "pretest": "scripts/pretest.js",
    "test": "scripts/test.js",
    "posttest": "scripts/posttest.js"
  }
}

In questo caso, puoi eseguire lo script eseguendo uno di questi comandi:

$ npm run-script test
$ npm run test
$ npm test
$ npm t

Script predefiniti

Nome script Descrizione
prepublish Esegui prima che il pacchetto sia pubblicato.
pubblicare, postpublish Esegui dopo che il pacchetto è stato pubblicato.
preinstallare Esegui prima che il pacchetto sia installato.
installa, postinstall Esegui dopo l'installazione del pacchetto.
preinstallare, disinstallare Esegui prima che il pacchetto venga disinstallato.
postuninstall Esegui dopo che il pacchetto è stato disinstallato.
preversione, versione Esegui prima di eseguire il bump della versione del pacchetto.
postversion Esegui dopo aver eseguito il bump della versione del pacchetto.
pretest, test, post test Esegui dal comando di npm test
prestop, stop, poststop Esegui con il comando npm stop
prestart, start, poststart Esegui dal comando di npm start
prerestart, restart, postrestart Esegui dal comando di npm restart

Script definiti dall'utente

Puoi anche definire i tuoi script nello stesso modo in cui lo fai con gli script predefiniti:

{
  "scripts": {
    "preci": "scripts/preci.js",
    "ci": "scripts/ci.js",
    "postci": "scripts/postci.js"
  }
}

In questo caso, puoi eseguire lo script eseguendo uno di questi comandi:

$ npm run-script ci
$ npm run ci

Gli script definiti dall'utente supportano anche gli script pre e post , come mostrato nell'esempio sopra.

Definizione del progetto estesa

Alcuni degli attributi aggiuntivi sono analizzati dal sito Web di npm come repository , bugs o homepage e mostrati nel riquadro informazioni per questi pacchetti

{
  "main": "server.js",  
  "repository" :  {
    "type": "git",
    "url": "git+https://github.com/<accountname>/<repositoryname>.git"
  },
  "bugs": {
    "url": "https://github.com/<accountname>/<repositoryname>/issues"
  },
  "homepage": "https://github.com/<accountname>/<repositoryname>#readme",
  "files": [
    "server.js", // source files
    "README.md", // additional files
    "lib" // folder with all included files
  ]
}
Campo Descrizione
principale Script di entrata per questo pacchetto. Questo script viene restituito quando un utente richiede il pacchetto.
deposito Ubicazione e tipo del repository pubblico
bug Bugtracker per questo pacchetto (es. Github)
homepage Homepage per questo pacchetto o il progetto generale
File Elenco di file e cartelle che devono essere scaricati quando un utente esegue l' npm install <packagename>

Esplorando package.json

Un file package.json , solitamente presente nella root del progetto, contiene metadati relativi all'app o al modulo e all'elenco delle dipendenze da installare da npm durante l'esecuzione npm install .

Per inizializzare un package.json digitare npm init nel prompt dei comandi.

Per creare un package.json con i valori predefiniti utilizzare:

npm init --yes
# or
npm init -y

Per installare un pacchetto e salvarlo su package.json usa:

npm install {package name} --save

Puoi anche usare la notazione abbreviata:

 npm i -S {package name}

Alias ​​NPM -S per --save e -D per --save-dev per salvare rispettivamente nelle dipendenze di produzione o di sviluppo.

Il pacchetto apparirà nelle dipendenze; se usi --save-dev anziché --save , il pacchetto apparirà nelle tue devDependencies.

Proprietà importanti di package.json :

{
  "name": "module-name",
  "version": "10.3.1",
  "description": "An example module to illustrate the usage of a package.json",
  "author": "Your Name <[email protected]>",
  "contributors": [{
    "name": "Foo Bar",
    "email": "[email protected]"
  }],
  "bin": {
    "module-name": "./bin/module-name"
  },
  "scripts": {
    "test": "vows --spec --isolate",
    "start": "node index.js",
    "predeploy": "echo About to deploy",
    "postdeploy": "echo Deployed",
    "prepublish": "coffee --bare --compile --output lib/foo src/foo/*.coffee"
  },
  "main": "lib/foo.js",
  "repository": {
    "type": "git",
    "url": "https://github.com/username/repo"
  },
  "bugs": {
    "url": "https://github.com/username/issues"
  },
  "keywords": [
    "example"
  ],
  "dependencies": {
    "express": "4.2.x"
  },
  "devDependencies": {
    "assume": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
  },
  "peerDependencies": {
    "moment": ">2.0.0"
  },
  "preferGlobal": true,
  "private": true,
  "publishConfig": {
    "registry": "https://your-private-hosted-npm.registry.domain.com"
  },
  "subdomain": "foobar",
  "analyze": true,
  "license": "MIT",
  "files": [
    "lib/foo.js"
  ]
}

Informazioni su alcune proprietà importanti:

name

Il nome univoco del tuo pacchetto e dovrebbe essere in minuscolo. Questa proprietà è richiesta e il pacchetto non verrà installato senza di esso.

  1. Il nome deve essere inferiore o uguale a 214 caratteri.
  2. Il nome non può iniziare con un punto o un trattino basso.
  3. I nuovi pacchetti non devono contenere lettere maiuscole nel nome.
version

La versione del pacchetto è specificata da Semantic Versioning (semere). Che presuppone che un numero di versione sia scritto come MAJOR.MINOR.PATCH e si incrementa il:

  1. Versione MAJOR quando si apportano modifiche API incompatibili
  2. Versione MINORE quando si aggiungono funzionalità in modo compatibile con le versioni precedenti
  3. Versione PATCH quando si effettuano correzioni di errori compatibili con le versioni precedenti
description

La descrizione del progetto. Cerca di mantenerlo breve e conciso.

author

L'autore di questo pacchetto.

bin

Un oggetto che viene utilizzato per esporre script binari dal pacchetto. L'oggetto presuppone che la chiave sia il nome dello script binario e il valore di un percorso relativo allo script.

Questa proprietà viene utilizzata dai pacchetti che contengono una CLI (interfaccia a riga di comando).

script

Un oggetto che espone ulteriori comandi di npm. L'oggetto presuppone che la chiave sia il comando npm e che il valore sia il percorso dello script. Questi script possono essere eseguiti quando si esegue npm run {command name} o npm run-script {command name} .

I pacchetti che contengono un'interfaccia a riga di comando e sono installati localmente possono essere chiamati senza un percorso relativo. Quindi, invece di chiamare ./node-modules/.bin/mocha puoi chiamare direttamente mocha .

main

Il principale punto di accesso al tuo pacchetto. Quando si chiama require('{module name}') nel nodo, questo sarà il file effettivo richiesto.

È altamente consigliato che richiedere il file principale non generi effetti collaterali. Ad esempio, richiedendo il file principale non dovrebbe avviare un server HTTP o connettersi a un database. Invece, dovresti creare qualcosa come exports.init = function () {...} nel tuo script principale.

keywords

Una serie di parole chiave che descrivono il tuo pacchetto. Questi aiuteranno le persone a trovare il tuo pacco.

devDependencies

Queste sono le dipendenze destinate esclusivamente allo sviluppo e al test del modulo. Le dipendenze verranno installate automaticamente a meno che non sia stata impostata la variabile di ambiente di NODE_ENV=production . Se questo è il caso puoi ancora questi pacchetti usando npm install --dev

peerDependencies

Se stai usando questo modulo, peerDependencies elenca i moduli che devi installare insieme a questo. Ad esempio, il moment-timezone deve essere installato insieme al moment perché è un plugin per il momento, anche se non require("moment") direttamente require("moment") .

preferGlobal

Una proprietà che indica che questa pagina preferisce essere installata globalmente usando npm install -g {module-name} . Questa proprietà viene utilizzata dai pacchetti che contengono una CLI (interfaccia a riga di comando).

In tutte le altre situazioni NON dovresti usare questa proprietà.

publishConfig

PublishConfig è un oggetto con valori di configurazione che verranno utilizzati per la pubblicazione dei moduli. I valori di configurazione impostati sostituiscono la configurazione predefinita di npm.

L'uso più comune di publishConfig è di pubblicare il tuo pacchetto su un registro privato di npm in modo da avere ancora i vantaggi di npm ma per i pacchetti privati. Questo viene fatto semplicemente impostando l'URL del tuo npm privato come valore per la chiave di registro.

files

Questa è una matrice di tutti i file da includere nel pacchetto pubblicato. È possibile utilizzare un percorso di file o un percorso di cartella. Verranno inclusi tutti i contenuti di un percorso di cartella. Ciò riduce la dimensione totale del pacchetto includendo solo i file corretti da distribuire. Questo campo funziona in congiunzione con un file di regole .npmignore .

fonte



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow