¿Cómo agrego comentarios a package.json para la instalación de npm?
Tengo un archivo package.json simple y quiero agregar un comentario. ¿Hay alguna manera de hacer esto o hay algún truco para que esto funcione?
{
"name": "My Project",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.x",
"mongoose": "3.x"
},
"devDependencies" : {
"should": "*"
/* "mocha": "*" not needed as should be globally installed */
}
}
El comentario de ejemplo anterior no funciona cuando npm se rompe. También probé // comentarios de estilo.
Esto se ha discutido recientemente en la lista de correo de Node.js.
Según Isaac Schlueter, quien creó npm:
... npm nunca utilizará la clave "//" para ningún propósito y está reservada para comentarios... Si desea utilizar un comentario de varias líneas, puede utilizar una matriz o varios "//" llaves.
Al utilizar sus herramientas habituales (npm, hilo, etc.), "//"
se eliminarán varias claves. Esto sobrevive:
{ "//": [
"first line",
"second line" ] }
Esto no sobrevivirá:
{ "//": "this is the first line of a comment",
"//": "this is the second line of the comment" }
Hay que tener en cuenta que
"//"
sólo se puede utilizar en la raíz delpackage.json
objeto. Por ejemplo
{ "//": "comment!", "dependencies": {...} }
es válido pero
{ "dependencies": { "//": "comment?" } }
es inválido .
-- @david_p comentario
Después de perder una hora en soluciones complejas y hacky, encontré una solución simple y válida para comentar mi sección de dependencias voluminosas en package.json
. Así como esto:
{
"name": "package name",
"version": "1.0",
"description": "package description",
"scripts": {
"start": "npm install && node server.js"
},
"scriptsComments": {
"start": "Runs development build on a local server configured by server.js"
},
"dependencies": {
"ajv": "^5.2.2"
},
"dependenciesComments": {
"ajv": "JSON-Schema Validator for validation of API data"
}
}
Cuando se ordenan de la misma manera, ahora me resulta muy fácil rastrear estos pares de dependencias/comentarios ya sea en Git commit diffs o en un editor mientras trabajo con file package.json
.
Y no se necesitan herramientas adicionales, solo JSON simple y válido.
DESCARGO DE RESPONSABILIDAD: probablemente no deberías utilizar este truco. Vea los comentarios a continuación.
Aquí hay otro truco para agregar comentarios en JSON. Desde:
{"a": 1, "a": 2}
Es equivalente a
{"a": 2}
Puedes hacer algo como:
{
"devDependencies": "'mocha' not needed as should be globally installed",
"devDependencies" : {
"should": "*"
}
}
He estado haciendo esto:
{
...
"scripts": {
"about": "echo 'Say something about this project'",
"about:clean": "echo 'Say something about the clean script'",
"clean": "do something",
"about:build": "echo 'Say something about building it'",
"build": "do something",
"about:watch": "echo 'Say something about how watch works'",
"watch": "do something",
}
...
}
De esta manera, puedo leer los "pseudocomentarios" en el script y también ejecutar algo como lo siguiente para ver algún tipo de ayuda en la terminal:
npm run about
npm run about:watch
Aún mejor si estás usando yarn
.
yarn about:clean
Además, como señaló @Dakota Jang en los comentarios, puedes usar claves como //something
para dejar aún más claro que se trata de un comentario.
Al igual que:
{
...
"scripts": {
"//clean": "echo 'Say something about the clean script'",
"clean": "do something",
"//build": "echo 'Say something about building it'",
"build": "do something",
"//watch": "echo 'Say something about how watch works'",
"watch": "do something",
}
...
}
Y luego ejecuta:
npm run //build
# or
yarn //build
Y tendrá una salida auxiliar en su terminal y también un "comentario" en su paquete.json.