Saltar al contenido

¿Cómo agrego comentarios a package.json para la instalación de npm?

Solución:

Esto se ha discutido recientemente en la lista de correo de Node.js.

Según Isaac Schlueter, quien creó npm:

… la clave “//” nunca será utilizada por npm para ningún propósito, y está reservada para comentarios … Si desea usar un comentario de varias líneas, puede usar una matriz o múltiples “//” teclas.

Cuando utilice sus herramientas habituales (npm, yarn, etc.), se eliminarán varias teclas “//”. 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" }

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í:

{
  "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 es muy fácil para mí rastrear estos pares de dependencias / comentarios en Git commit diffs o en un editor mientras trabajo con file package.json.

Y no hay herramientas adicionales involucradas, solo JSON simple y válido.

DESCARGO DE RESPONSABILIDAD: probablemente no deberías usar este truco. Vea los comentarios a continuación.


Aquí hay otro truco para agregar comentarios en JSON. Ya que:

{"a": 1, "a": 2}

Es equivalente a

{"a": 2}

Puedes hacer algo como:

{
  "devDependencies": "'mocha' not needed as should be globally installed",
  "devDependencies" :  {
    "should": "*"
  }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *