Recherche…


Remarques

Vous pouvez créer package.json avec

npm init

qui vous demandera des informations de base sur vos projets, y compris l’ identificateur de licence .

Définition de base du projet

{
    "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"]
}
Champ La description
prénom un champ obligatoire pour un package à installer. Doit être en minuscule, un seul mot sans espaces. (Tirets et traits de soulignement autorisés)
version un champ obligatoire pour la version du package utilisant le contrôle de version sémantique .
la description une brève description du projet
auteur spécifie l'auteur du paquet
contributeurs un tableau d'objets, un pour chaque contributeur
mots clés un tableau de chaînes, cela aidera les personnes à trouver votre paquet

Les dépendances

"dependencies": {"nom-module": "0.1.0"}

  • exact : 0.1.0 va installer cette version spécifique du module.
  • Dernière version mineure : ^0.1.0 installera la version mineure la plus récente, par exemple 0.2.0 , mais n'installera pas de module avec une version majeure supérieure, par exemple 1.0.0
  • Le dernier patch : 0.1.x ou ~0.1.0 installera la version la plus récente du patch disponible, par exemple 0.1.4 , mais n'installe pas de module avec une version majeure ou mineure plus élevée, par exemple 0.2.0 ou 1.0.0 .
  • caractère générique : * installera la dernière version du module.
  • git repository : ce qui suit va installer une archive tar à partir de la branche principale d'un dépôt git. Un #sha , #tag ou #branch peut également être fourni:
    • GitHub : user/project ou user/project#v1.0.0
    • url : git://gitlab.com/user/project.git ou git://gitlab.com/user/project.git#develop
  • chemin local : file:../lib/project

Après les avoir ajoutés à votre package.json, utilisez la commande npm install dans le répertoire de votre projet dans le terminal.

devDependencies

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

Pour les dépendances requises uniquement pour le développement, comme le test des proxies de style ext. Ces dépendances dev ne seront pas installées lors de l'exécution de "npm install" en mode production.

Scripts

Vous pouvez définir des scripts pouvant être exécutés ou déclenchés avant ou après un autre script.

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

Dans ce cas, vous pouvez exécuter le script en exécutant l'une de ces commandes:

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

Scripts prédéfinis

Nom du script La description
prépublication Exécuter avant la publication du paquet
publier, postpublier Exécuter après la publication du package.
préinstaller Exécuter avant l'installation du package.
installer, postinstaller Exécuter après l'installation du package.
preuninstall, désinstaller Exécuter avant la désinstallation du package.
post-install Exécuter après la désinstallation du package.
preversion, version Exécuter avant de cogner la version du package.
postversion Exécuter après bump la version du package.
prétest, test, post-test Exécuter par la commande de npm test
prestop, stop, poststop Exécutée par la commande npm stop
prestart, start, poststart Exécuter par la commande de npm start
prerestart, restart, postrestart Exécuter par la commande npm restart

Scripts définis par l'utilisateur

Vous pouvez également définir vos propres scripts de la même manière que vous le faites avec les scripts prédéfinis:

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

Dans ce cas, vous pouvez exécuter le script en exécutant l'une de ces commandes:

$ npm run-script ci
$ npm run ci

Les scripts définis par l'utilisateur prennent également en charge les scripts pré et post , comme le montre l'exemple ci-dessus.

Définition étendue du projet

Certains des attributs supplémentaires sont analysés par le site Web npm, comme le repository , les bugs ou la homepage et affichés dans l'infobox pour ces paquets.

{
  "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
  ]
}
Champ La description
principale Script d'entrée pour ce package. Ce script est renvoyé lorsqu'un utilisateur requiert le package.
dépôt Emplacement et type du référentiel public
bogues Bugtracker pour ce paquet (par exemple github)
page d'accueil Page d'accueil pour ce package ou le projet général
des dossiers Liste des fichiers et dossiers à télécharger lorsqu'un utilisateur effectue une npm install <packagename>

Explorer le package.json

Un fichier package.json , généralement présent dans la racine du projet, contient les métadonnées relatives à votre application ou à votre module, ainsi que la liste des dépendances à installer à partir de npm lors de l'exécution de npm install .

Pour initialiser un package.json tapez npm init dans votre invite de commande.

Pour créer un package.json avec des valeurs par défaut, utilisez:

npm init --yes
# or
npm init -y

Pour installer un package et l'enregistrer dans package.json utilisez:

npm install {package name} --save

Vous pouvez également utiliser la notation abrégée:

 npm i -S {package name}

Alias ​​NPM -S à --save et -D à --save-dev pour enregistrer respectivement dans vos dépendances de production ou de développement.

Le paquet apparaîtra dans vos dépendances; Si vous utilisez --save-dev au lieu de --save , le paquet apparaîtra dans vos devDependencies.

Propriétés importantes de 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"
  ]
}

Informations sur certaines propriétés importantes:

name

Le nom unique de votre package et devrait être en minuscule. Cette propriété est requise et votre package ne sera pas installé sans lui.

  1. Le nom doit être inférieur ou égal à 214 caractères.
  2. Le nom ne peut pas commencer par un point ou un trait de soulignement.
  3. Les nouveaux paquets ne doivent pas comporter de majuscules dans le nom.
version

La version du package est spécifiée par Semantic Versioning (semver). Ce qui suppose qu'un numéro de version est écrit en tant que MAJOR.MINOR.PATCH et que vous incrémentez le:

  1. Version MAJOR lorsque vous apportez des modifications incompatibles à l'API
  2. Version MINOR lorsque vous ajoutez des fonctionnalités de manière rétrocompatible
  3. Version PATCH lorsque vous apportez des corrections de bogues rétro-compatibles
description

La description du projet. Essayez de le garder court et concis.

author

L'auteur de ce paquet.

bin

Un objet utilisé pour exposer des scripts binaires de votre package. L'objet suppose que la clé est le nom du script binaire et la valeur un chemin d'accès relatif au script.

Cette propriété est utilisée par les packages contenant une interface de ligne de commande (CLI).

script

Un objet qui expose des commandes npm supplémentaires. L'objet suppose que la clé est la commande npm et que la valeur est le chemin du script. Ces scripts peuvent être exécutés lorsque vous exécutez npm run {command name} ou npm run-script {command name} .

Les packages contenant une interface de ligne de commande et installés localement peuvent être appelés sans chemin relatif. Ainsi , au lieu d'appeler ./node-modules/.bin/mocha vous pouvez appeler directement mocha .

main

Le point d'entrée principal de votre forfait. Lors de l'appel de require('{module name}') dans le noeud, ce sera le fichier réel requis.

Il est fortement recommandé que le fait de demander le fichier principal ne génère aucun effet secondaire. Par exemple, exiger que le fichier principal ne démarre pas un serveur HTTP ou ne se connecte pas à une base de données. Au lieu de cela, vous devriez créer quelque chose comme exports.init = function () {...} dans votre script principal.

keywords

Un tableau de mots-clés décrivant votre package. Cela aidera les gens à trouver votre paquet.

devDependencies

Ce sont les dépendances qui sont uniquement destinées au développement et aux tests de votre module. Les dépendances seront installées automatiquement à moins que la variable d'environnement de NODE_ENV=production ait été définie. Si tel est le cas, vous pouvez toujours utiliser ces paquetages avec npm install --dev

peerDependencies

Si vous utilisez ce module, peerDependencies répertorie les modules à installer avec celui-ci. Par exemple, moment-timezone doit être installé à côté de l' moment car il s'agit d'un plugin pour l'instant, même s'il ne require("moment") pas directement require("moment") .

preferGlobal

Une propriété qui indique que cette page préfère être installée globalement à l'aide de npm install -g {module-name} . Cette propriété est utilisée par les packages contenant une interface de ligne de commande (CLI).

Dans toutes les autres situations, vous ne devez PAS utiliser cette propriété.

publishConfig

Le publishConfig est un objet avec des valeurs de configuration qui seront utilisées pour la publication des modules. Les valeurs de configuration définies remplacent votre configuration npm par défaut.

L'utilisation la plus courante de publishConfig consiste à publier votre package dans un registre privé npm, ce qui vous permet de bénéficier des avantages de npm, à l'exception des packages privés. Cela se fait simplement en définissant l'URL de votre npm privé comme valeur pour la clé de registre.

files

Ceci est un tableau de tous les fichiers à inclure dans le package publié. Un chemin de fichier ou un chemin de dossier peut être utilisé. Tout le contenu d'un chemin de dossier sera inclus. Cela réduit la taille totale de votre package en incluant uniquement les fichiers corrects à distribuer. Ce champ fonctionne conjointement avec un fichier de règles .npmignore .

La source



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow