tl; dr:
- Sí, se le permite añadir entradas personalizadas a
package.json
.
- elegir un nombre clave:
- no se ha definido (detalles a continuación)
- no reservados para uso futuro (detalles a continuación)
- evitar prefijos
_
y $
- y preferiblemente use un solo top-lev la clave en la que a nido sus entradas personalizadas.
P. ej, Si es el propietario del dominio example.org
, podría almacenar una clave personalizada random
de la siguiente manera, dentro de una clave de nivel superior en nombre-dominio-inverso notación con _
sustituido por .
y, en su caso, -
(ver comentarios) (por ejemplo, org_example
):
{
"name": "application-name"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"express": "2.4.7"
, "jade": ">= 0.0.1"
}
, "org_example": {
"random": true
}
}
package.json
formato de archivo
npm
's cumple con la mayoría CommonJS package specification:
En cuanto a la elección de teclas personalizadas: los CommonJS package specification estados (el énfasis es mío):
El siguiente campo ds son reservada parafutura expansión: build
, default
, email
, external
, files
, imports
, maintainer
, paths
, platform
, require
, summary
, test
, using
, downloads
, uid
.
Las extensiones de la especificación del descriptor de paquete deben esforzarse para evitar colisiones para futuros nombres estándar espaciando sus propiedades con nombres inocuos que no tienen significados relevantes para la administración general de paquetes.
Los siguientes campos se reservan para paquete de registros utilizar a su discreción: id
, type
. Todas las propiedades que comienzan con _
o $
también están reservadas para registros de paquetes para usar a su discreción.
Gracias por la información. ¿Hay alguna razón por la que recomiende '" org_example "' en lugar de '" org.example "' - o un espacio de nombres XML como '" http://example.org "'? – tomekwi
- o un [NPM-scope] (https://github.com/npm/npm/issues/5239) -style '" @example "'? – tomekwi
@tomekwi: Deberías usar 'org.example' o' http: // example.org', pero, dado que los nombres de las claves JSON también son nombres de propiedad de objetos JavaScript, sería incómodo acceder a estas propiedades más adelante, porque tendría que usar algo como 'pkg ['org.example']', porque la sintaxis más natural de 'pkg.' no funcionaría con ellos. –
mklement0