¿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 link
Respuestas:
Npm utiliza el archivo package.json para conocer su proyecto node.js.
Utilizar
npm init
para 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 init
fue justo lo que estaba buscando! También después de eso, generalmente corronpm shrinkwrap
para crear unnpm-shrinkwrap.json
archivonpm init
: Usenpm install <pkg> --save
después para instalar un paquete y guárdelo como una dependencia en el archivo package.json.npm init
en 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 --yes
es 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
'sdependencies
lista.(Nota: es posible que deba ajustar manualmente los rangos de versión para sus dependencias).
fuente
package.json
, generalmente se maneja automáticamente.--save
ya 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=0
imprimirá más o menos lo mismo (no estoy seguro si era el caso en 2012, aunque)a
, y el paquetea
necesita paquetesb
yc
, esta es la salida de la escritura todos los niveles, por lo quea
,b
,c
que es no correcta. Solo debería salira
, los subpaquetes se resolverán automáticamente.npm init
para crear el archivo package.json y luego usas
ls node_modules/ | xargs npm install --save
para completar los módulos que tiene en la carpeta node_modules.
Editar: @paldepind señaló que el segundo comando es redundante porque
npm init
ahora 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 init
habí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_modules
directorio. ¡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 -y
hacepackage.json
con todos los valores predeterminados.Luego puede cambiar en
package.json
consecuenciaEsto ahorra tiempo muchas veces al evitar presionar
enter
cada comando ennpm init
fuente
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-package
más simplemente quenpm init
.más
y / o no le gusta la
package.json
plantilla, que genera-paquete onpm init
genera: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-package
más simplemente, esonpm init
.5. Personalización
Para crear su propia
package.json
plantilla, vea los ejemplos de generate y yeoman .fuente