2012-05-03 23 views
30

Tengo una biblioteca basada en JavaScript que me gustaría incluir en una aplicación Meteor JS. El código fuente de la biblioteca está alojado en un repositorio de Git y me gustaría incluir el repositorio como un submódulo en mi repositorio de código fuente para mi aplicación Meteor. Sin embargo, no necesito la mayoría de los archivos incluidos procesados ​​por Meteor, solo unos pocos seleccionados. De hecho, Meteor barfs con "Error: no se pudo analizar ... um ... algún archivo HTML, en alguna línea. Lo siento" cuando ve muchos de los archivos en el submódulo.Ignorar archivos en un directorio de proyecto Meteor JS

¿Existe alguna forma de incluir en la lista blanca o los archivos de la lista negra para su inclusión en la aplicación Meteor dentro del directorio del proyecto? Además de crear un paquete inteligente, ¿hay formas en que podría incluir recursos externos como los submódulos de Git dentro de mi directorio de proyecto de la aplicación Meteor.

Actualización: como se explicó en la pregunta relacionada de "How to create a package", si crea un paquete inteligente en una salida de Git local de Meteor, obtiene el comportamiento de carga en caliente para el código en el paquete.

Respuesta

34

Además del directorio /public que jonathan menciona, Meteor también ignora cualquier directorio que comience con un "." - para que pueda crear un directorio .submodules y poner los archivos allí y Meteor no los cargará.

Esto es probablemente preferible a tenerlos en /public ya que, bueno, no son públicos.

+0

Maldita sea, sí me olvidé de esos. Esa es la respuesta, entonces, supongo. – jonathanKingston

+0

¿Cómo vas a cargarlos? +1 para la información interesante, sin embargo:) –

+0

¡Ah, brillante! Muchas gracias por eso. Una pregunta de seguimiento a esto: intenté hacer un enlace simbólico de .submodules a los archivos que realmente quiero que Meteor procese, y luego cambiar el archivo fuente, pero parece que Meteor no está recogiendo los cambios a los archivos enlazados. – mz2

0

No, la única forma de hacerlo es escribir un script de importación.

Hay un directorio/public que puede utilizar para tener todos los archivos si no sabía de eso.

Personalmente, sin embargo, no lo consideraría un problema ya que no solo quiere importar archivos en función de una ruta determinada, si cambian su código para agregar un nuevo archivo requerido, el suyo también se romperá. Eso no es algo que quisiera averiguar en la implementación, más bien planifique cada cambio de versión de la dependencia.

+0

Sí, sé a lo que se refiere, es más un atajo en un caso en que las cosas que uso como submódulo en el contexto de Meteor cambian de forma tan activa que es difícil mantenerlas empaquetadas como un paquete inteligente cada vez Yo lo cambie.Básicamente, me gustaría obtener los beneficios de la magia de autodeploración también para este código que no está estrictamente vinculado a la aplicación Meteor, sino que también se usa en otros lugares. – mz2

19

Actualización: en la próxima versión de Meteor (0.6.5) hay un directorio private en el que puede colocar archivos que son inaccesibles para el cliente y que no se cargan automáticamente en el servidor. El objeto global Assets y la API le permiten leer estos archivos.

+0

Esta parece ser la respuesta más correcta dado el lanzamiento actual de Meteor. – Jesse

0

que suena un poco extraño, pero en Meteor 1.3 no es el ..

/imports

..directory, que no se incluye automáticamente por meteoritos.

Está 'significado'/sugerido por el nombre, para los módulos que 'importa' de su otro código. Pero también puede usarlo para su propio código de aplicación, y creo que es un nombre mejor para el código de aplicación que /private, pero esa es mi opinión personal :-)

2

También ahora hay soporte para un archivo .meteorignore (Meteor v1.5.2.1). Funciona exactamente igual que .gitignore.

Puede usarlos en cualquier directorio de su proyecto y están completamente integrados con el sistema de visualización de archivos.

Cuestiones relacionadas