2012-04-11 12 views
22

Estoy presentando pruebas unitarias en mi proyecto y para esto, necesito hacerme un archivo package.json.paquete.json generación/npm paquetes no utilizados

Primera pregunta es la que unit testing suite estás usando? Estoy esperando mocha que parecen ser bastante estándar para los proyectos Node.js.

La segunda pregunta es: ¿Hay alguna forma mágica de generar un archivo package.json? (Para las dependencias y versiones)

Tercera pregunta es: He estado probando un montón de npm packages, mientras que el desarrollo de mi proyecto y ahora tengo que cargar con un montón de paquetes probablemente no utilizados. ¿Hay alguna manera de decir cuál es inútil? (Vi npm list installed que es útil)

+2

http://npmjs.org/doc/init.html es probablemente la forma más fácil de crear un proyecto npm. Y te aconsejo que leas http://npmjs.org/doc/json.html y que te inspires en paquetes bien usados ​​y probados como express o npm. –

+0

Realmente debería hacer tres preguntas por separado. – Domenic

+1

¡Guau! ¡Tantas buenas respuestas! ¡Gracias a todos, esto es muy útil! Keep'em viniendo! – TomShreds

Respuesta

6
  1. También estoy usando Mocha.Tiene cobertura de código, BDD, TDD, se ejecuta en el navegador. Es bastante completo y también muy mantenido por creo que uno de los programadores javascript/node.js más brillantes llamado TJ.

  2. Es casi imposible adivinar qué versión (es) usar. Porque npm no sabe qué versión rompe qué dependencias. Probablemente puedas instalar todas las dependencias usando algo como node-detective. Luego puede instalarlos usando npm.js desde javascript. Tal vez me gustaría abordar esto en el futuro.

  3. Probablemente también borre todas las dependencias, la siguiente instalación necesitó dependencias de nuevo usando el paso (2). Pero también el espacio de disco ya no es tan importante con los HD actuales.

P.S: Creo que también estoy de acuerdo con Domenic

3
  1. Estoy usando votos. Es bastante bueno, pero no perfecto. He encontrado que las pruebas unitarias en el nodo son a menudo desafiantes debido a las devoluciones de llamada asincrónicas a dbs &, y en su mayoría he estado probando la funcionalidad de nivel superior.

  2. Aquí está su magia: Managing Node.js Dependencies with Shrinkwrap.

  3. La única forma de saber qué paquetes está utilizando es saber. No puedes generar esto programáticamente. Mi consejo sería eliminar los paquetes de manera agresiva, luego volver a probar todas las funciones; si se rompe, sabrá que necesita reinstalar uno de sus paquetes.

+0

+1 para el punto # 3 – Domenic

34
  1. estoy usando Mocha.

  2. npm init

  3. npm ls enumerará "ajeno" al lado de los que no están en su package.json. Pero, parece que todavía no tienes un paquete. Json.


Básicamente, el flujo de trabajo es muy hacia atrás. Así es como está previsto que funcione:

  1. Comience un nuevo proyecto con npm init. No tiene dependencias
  2. Oh, quiero empezar a usar un paquete, digamos express? Agréguelo a package.json en dependencias, luego ejecute npm install.
  3. Oh, quiero empezar a usar un paquete para desarrollo, digamos mocha? Agréguelo al package.json bajo devDependencies, luego ejecute npm install.

Parece que tiene un código existente con paquetes instalados manualmente (a través de npm install <packageName>), que es un desastre. Sugiero comenzar y seguir el flujo de trabajo anterior.

+0

Tiene toda la razón cuando dice que está al revés. Se suponía que era un pequeño proyecto de prueba pero resultó mucho más grande y no para pruebas de lo que esperaba Jeje. ¡Gracias por tu respuesta! – TomShreds

+9

También puede hacer 'npm install --save' que automáticamente lo agregará a su' package.json'. Consulte aquí para obtener más detalles: https://npmjs.org/doc/install.html. Me resulta más fácil que el flujo de trabajo que Domenic sugiere más arriba. – stephenbez

+3

También '--save-dev' para' devDependencies' (doc en el enlace mencionado) – chakrit

2

responder a sus tercera pregunta, puede utilizar Sweeper a la lista de dependencias no utilizadas, y los eliminarlos de su package.json. Solo npm install -g sweeper luego en su directorio de proyecto llame al sweeper en la línea de comando.

20

Para responder a la pregunta tercer:

npm prune

eliminará todos los módulos instalados que ya no se mencionan en su package.json.


Y realmente debería haber hecho 3 preguntas separadas.

Cuestiones relacionadas