Buscar..


Observaciones

Puedes crear package.json con

npm init

que le preguntará acerca de los datos básicos sobre sus proyectos, incluido el identificador de licencia .

Definición básica del proyecto

{
    "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 Descripción
nombre un campo obligatorio para instalar un paquete. Necesita ser minúscula, una sola palabra sin espacios. (Se permiten guiones y guiones bajos)
versión un campo obligatorio para la versión del paquete que usa versiones semánticas .
descripción Una breve descripción del proyecto.
autor Especifica el autor del paquete.
contribuyentes una matriz de objetos, uno para cada contribuyente
palabras clave una serie de cadenas, esto ayudará a las personas a encontrar su paquete

Dependencias

"dependencias": {"nombre-módulo": "0.1.0"}

  • exacto : 0.1.0 instalará esa versión específica del módulo.
  • la versión menor más nueva : ^0.1.0 instalará la versión menor más nueva, por ejemplo 0.2.0 , pero no instalará un módulo con una versión mayor más alta, por ejemplo, 1.0.0
  • el parche más nuevo : 0.1.x o ~0.1.0 instalará la versión más nueva del parche disponible, por ejemplo, 0.1.4 , pero no instalará un módulo con una versión mayor o menor, por ejemplo, 0.2.0 o 1.0.0 .
  • comodín : * instalará la última versión del módulo.
  • repositorio git : lo siguiente instalará un tarball desde la rama maestra de un repositorio git. También se puede proporcionar un #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
  • ruta local : file:../lib/project

Después de agregarlos a su package.json, use el comando npm install en el directorio de su proyecto en la terminal.

Dependencias

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

Para dependencias necesarias solo para el desarrollo, como probar proxies de estilo ext. Esas dependencias de desarrollo no se instalarán cuando se ejecute "npm install" en modo de producción.

Guiones

Puede definir secuencias de comandos que se pueden ejecutar o se activan antes o después de otra secuencia de comandos.

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

En este caso, puede ejecutar el script ejecutando cualquiera de estos comandos:

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

Scripts predefinidos

Nombre del script Descripción
prepublicar Ejecutar antes de que se publique el paquete.
publicar, publicar Ejecutar después de que se publica el paquete.
preinstalar Ejecutar antes de instalar el paquete.
instalar, postinstalar Ejecutar después de instalar el paquete.
preinstalar, desinstalar Ejecutar antes de que se desinstale el paquete.
postuninstall Ejecutar después de que se desinstala el paquete.
versión previa Ejecutar antes de golpear la versión del paquete.
postversion Ejecutar después de golpear la versión del paquete.
pretest, prueba, postest Ejecutado por el npm test
Pretop, detener, poststop Ejecutado por el comando npm stop
prearranque, inicio, poststart Ejecutado por el npm start
prerestart, reinicio, postrestart Ejecutado por el comando npm restart

Scripts definidos por el usuario

También puede definir sus propios scripts de la misma manera que lo hace con los scripts predefinidos:

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

En este caso, puede ejecutar el script ejecutando cualquiera de estos comandos:

$ npm run-script ci
$ npm run ci

Los scripts definidos por el usuario también admiten scripts anteriores y posteriores , como se muestra en el ejemplo anterior.

Definición extendida del proyecto

Algunos de los atributos adicionales son analizados por el sitio web de npm como repository , bugs o homepage y se muestran en el cuadro de información de este paquete.

{
  "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 Descripción
principal Script de entrada para este paquete. Este script se devuelve cuando un usuario requiere el paquete.
repositorio Ubicación y tipo de repositorio público.
loco Bugtracker para este paquete (por ejemplo, github)
página principal Página de inicio de este paquete o del proyecto general.
archivos Lista de archivos y carpetas que deben descargarse cuando un usuario realiza una npm install <packagename>

Explorando package.json

Un archivo package.json , generalmente presente en la raíz del proyecto, contiene metadatos sobre su aplicación o módulo, así como la lista de dependencias para instalar desde npm cuando se ejecuta npm install .

Para inicializar un package.json escriba npm init en su símbolo del sistema.

Para crear un package.json con valores predeterminados use:

npm init --yes
# or
npm init -y

Para instalar un paquete y guardarlo en package.json use:

npm install {package name} --save

También puedes usar la notación abreviada:

 npm i -S {package name}

Los alias de NPM -S a --save y -D a --save-dev para guardar en sus dependencias de producción o desarrollo respectivamente.

El paquete aparecerá en tus dependencias; Si usa --save-dev lugar de --save , el paquete aparecerá en sus devDependencies.

Propiedades 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"
  ]
}

Información sobre algunas propiedades importantes:

name

El nombre único de su paquete y debe estar en minúsculas. Esta propiedad es necesaria y su paquete no se instalará sin ella.

  1. El nombre debe ser menor o igual a 214 caracteres.
  2. El nombre no puede comenzar con un punto o un guión bajo.
  3. Los paquetes nuevos no deben tener letras mayúsculas en el nombre.
version

La versión del paquete se especifica mediante la versión semántica (semver). Lo que supone que un número de versión se escribe como MAJOR.MINOR.PATCH e incrementas el:

  1. Versión importante cuando haces cambios de API incompatibles
  2. Versión MENOR cuando agrega funcionalidad de una manera compatible con versiones anteriores
  3. Versión PATCH cuando haces correcciones de errores compatibles con versiones anteriores
description

La descripción del proyecto. Intenta que sea breve y conciso.

author

El autor de este paquete.

bin

Un objeto que se utiliza para exponer scripts binarios de su paquete. El objeto asume que la clave es el nombre del script binario y el valor es una ruta relativa al script.

Esta propiedad es utilizada por paquetes que contienen un CLI (interfaz de línea de comandos).

script

Un objeto que expone comandos npm adicionales. El objeto asume que la clave es el comando npm y el valor es la ruta del script. Estos scripts pueden ejecutarse cuando ejecuta npm run {command name} o npm run-script {command name} .

Los paquetes que contienen una interfaz de línea de comandos y se instalan localmente pueden llamarse sin una ruta relativa. Así que en lugar de llamar a ./node-modules/.bin/mocha puedes llamar directamente a mocha .

main

El principal punto de entrada a su paquete. Cuando la llamada require('{module name}') en el nodo, este será el archivo real que se requiere.

Se recomienda encarecidamente que requerir el archivo principal no genere efectos secundarios. Por ejemplo, requerir el archivo principal no debe iniciar un servidor HTTP o conectarse a una base de datos. En su lugar, debe crear algo así como exports.init = function () {...} en su script principal.

keywords

Una serie de palabras clave que describen su paquete. Esto ayudará a la gente a encontrar su paquete.

devDependencies

Estas son las dependencias que solo están destinadas al desarrollo y prueba de su módulo. Las dependencias se instalarán automáticamente a menos que se haya establecido la variable de entorno de NODE_ENV=production . Si este es el caso, todavía puede estos paquetes usando npm install --dev

peerDependencies

Si está utilizando este módulo, peerDependencies enumera los módulos que debe instalar junto con este. Por ejemplo, moment-timezone debe instalarse junto a moment porque es un complemento para moment, incluso si no lo require("moment") directamente require("moment") .

preferGlobal

Una propiedad que indica que esta página prefiere instalarse globalmente usando npm install -g {module-name} . Esta propiedad es utilizada por paquetes que contienen un CLI (interfaz de línea de comandos).

En todas las demás situaciones NO debe usar esta propiedad.

publishConfig

PublishConfig es un objeto con valores de configuración que se utilizarán para publicar módulos. Los valores de configuración que se configuran anulan su configuración npm predeterminada.

El uso más común de publishConfig es publicar su paquete en un registro privado de npm para que aún tenga los beneficios de npm pero para paquetes privados. Esto se hace simplemente configurando la URL de su npm privado como valor para la clave de registro.

files

Esta es una matriz de todos los archivos para incluir en el paquete publicado. Se puede utilizar una ruta de archivo o una ruta de carpeta. Se incluirán todos los contenidos de una ruta de carpeta. Esto reduce el tamaño total de su paquete al incluir solo los archivos correctos que se distribuirán. Este campo funciona junto con un archivo de reglas .npmignore .

Fuente



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow