¿Se supone que package.json se edita manualmente? ¿No podría un programa como npm simplemente mirar a través de los archivos, ver las declaraciones "require" y luego usar eso para colocar las entradas necesarias en el archivo package.json? ¿Hay algún programa como ese?
412

npm linkRespuestas:
Npm utiliza el archivo package.json para conocer su proyecto node.js.
Utilizar
npm initpara generar archivos package.json para usted!Viene incluido con npm. Lea su documentación aquí: https://docs.npmjs.com/cli/init
Además, hay una herramienta oficial que puede usar para generar este archivo mediante programación: https://github.com/npm/init-package-json
fuente
npm initfue justo lo que estaba buscando! También después de eso, generalmente corronpm shrinkwrappara crear unnpm-shrinkwrap.jsonarchivonpm init: Usenpm install <pkg> --savedespués para instalar un paquete y guárdelo como una dependencia en el archivo package.json.npm initen Package Manager Console de Visual Studio 2015, simplemente se muestra[...] Press ^C at any time to quit.y se detiene sin preguntar nada ni crear el archivo json. ¿Me estoy perdiendo de algo?npm init --force --yeses el único revestimiento para generar este archivoPrimero, corre
... le hará algunas preguntas ( lea esto primero ) sobre su proyecto / paquete y luego generará un archivo package.json para usted.
Luego, una vez que tenga un archivo package.json, use
o
... para instalar una dependencia y agregarla automáticamente a su
package.json'sdependencieslista.(Nota: es posible que deba ajustar manualmente los rangos de versión para sus dependencias).
fuente
package.json, generalmente se maneja automáticamente.--saveya no es necesario en las nuevas versiones de npmAcabo de escribir un script simple para recopilar las dependencias en ./node_modules. Cumple mi requisito en este momento. Esto puede ayudar a otros, lo publico aquí.
En mi caso, el script anterior genera:
Ahora puedes copiarlos y pegarlos. ¡Que te diviertas!
fuente
npm ls --depth=0imprimirá más o menos lo mismo (no estoy seguro si era el caso en 2012, aunque)a, y el paqueteanecesita paquetesbyc, esta es la salida de la escritura todos los niveles, por lo quea,b,cque es no correcta. Solo debería salira, los subpaquetes se resolverán automáticamente.npm initpara crear el archivo package.json y luego usas
ls node_modules/ | xargs npm install --savepara completar los módulos que tiene en la carpeta node_modules.
Editar: @paldepind señaló que el segundo comando es redundante porque
npm initahora agrega automáticamente lo que tiene en su carpeta node_modules /. No sé si este siempre ha sido el caso, pero ahora al menos, funciona sin el segundo comando.fuente
npm inithabía agregado automáticamente dependencias basadas en paquetes instalados y que no había necesidad de ejecutar el segundo comando.npm dedupe, que extrae las dependencias que se comparten entre sus módulos de esos módulos y las almacena en el nivel superior de sunode_modulesdirectorio. ¡Pero no tocapackage.json! Con esto, puede confirmar y compartir su configuración deduplicada.Línea de comando :
creará el archivo package.json
Para instalar, actualizar y desinstalar paquetes bajo dependencias en el archivo package.json:
Línea de comando :
agregará automáticamente la última versión del paquete bajo dependencias en el archivo package.json
EX:
Línea de comando :
también agregará automáticamente la última versión del paquete bajo dependencias en el archivo package.json
Si necesita una versión específica para un paquete, use esta línea de comando :
agregará automáticamente una versión específica del paquete bajo dependencias en el archivo package.json
EX:
Si necesita un rango específico de versión para un paquete, use esta línea de comando :
agregará automáticamente la última versión del paquete entre el rango de versiones bajo dependencias en el archivo package.json
EX:
Para más detalles sobre cómo escribir la versión para el paquete npm Doc
Línea de comando :
actualizará los paquetes en el archivo package.json y agregará automáticamente la versión actualizada para todos los paquetes bajo dependencias en el archivo package.json
Línea de comando :
eliminará automáticamente el paquete de las dependencias en el archivo package.json y eliminará el paquete de la carpeta node_module
fuente
Correr te
npm init -yhacepackage.jsoncon todos los valores predeterminados.Luego puede cambiar en
package.jsonconsecuenciaEsto ahorra tiempo muchas veces al evitar presionar
entercada comando ennpm initfuente
Ahora puede usar Yeoman: herramienta de andamiaje de aplicación web moderna en el terminal de nodo mediante 3 sencillos pasos.
Primero, necesitará instalar yo y otras herramientas requeridas:
Para andamiar una aplicación web, instale el generador generator-webapp :
Corre yo y ... ya terminaste:
Yeoman puede escribir código repetitivo para toda su aplicación web o Controladores y Modelos. Puede iniciar un servidor web de vista previa en vivo para editar y compilar; no solo que también puede ejecutar sus pruebas unitarias, minimizar y concatenar su código, optimizar imágenes y más ...
Yeoman (yo) : herramienta de andamiaje que ofrece un ecosistema de andamios específicos del marco, llamados generadores, que se pueden utilizar para realizar algunas de las tareas tediosas mencionadas anteriormente.
Grunt / gulp : se usa para construir, previsualizar y probar su proyecto.
Bower : se utiliza para la administración de dependencias, de modo que ya no tenga que descargar manualmente sus bibliotecas front-end.
fuente
Según la respuesta de Pylinux, a continuación se muestra una solución para el sistema operativo Windows,
Espero eso ayude.
fuente
use el comando npm init -f para generar el archivo package.json y luego use --save después de cada comando para que cada módulo se actualice automáticamente dentro de su package.json por ejemplo: npm install express --save
fuente
1. Elección
Si git y usuario de GitHub:
generate-packagemás simplemente quenpm init.más
y / o no le gusta la
package.jsonplantilla, que genera-paquete onpm initgenera:puede generar su propia plantilla a través de aplicaciones de andamios como generate , sails o yeoman .
2. Relevancia
Esta respuesta es relevante para marzo de 2018. En el futuro, los datos de esta respuesta pueden quedar obsoletos.
El autor de esta respuesta usó personalmente generate-package en marzo de 2018.
3. Limitaciones
Necesita usar git y GitHub para usar generate-package.
4. Demostración
Por ejemplo, creo una carpeta en blanco
sasha-npm-init-vs-generate-package.4.1. generar-paquete
Mando:
package.json:4.2. npm init
Creo que,
generate-packagemás simplemente, esonpm init.5. Personalización
Para crear su propia
package.jsonplantilla, vea los ejemplos de generate y yeoman .fuente