¿Cuál es la propiedad del "archivo principal" al hacer bower init?
106
¿Cuál es el uso del archivo principal de propiedades cuando ejecuta bower init? Lo he estado buscando y mucha gente dice que actualmente no tiene ningún propósito.
¿Es eso cierto? La documentación de Bower tampoco lo explica.
Parece que hay otros también confundidos por esto. Por ejemplo, el autor de este tutorial de bower
Simon Bengtsson
Parece que la definición de la mainpropiedad está actualmente en duda y se está debatiendo en un tema abierto en el repositorio de bower github. Busque aquí las definiciones propuestas actuales y la discusión: github.com/bower/bower/issues/935
Los archivos de actuación primarios necesarios para usar su paquete. Si bien Bower no usa directamente estos archivos, se enumeran con los comandos bower list --json ybower list --paths, por lo que pueden ser utilizados por herramientas de compilación.
Los archivos de preprocesador como CoffeeScript deben compilarse. No incluya archivos minificados. Los nombres de archivo no deben ser versionados (Malo: package.1.1.0.js; Bueno: package.js).
Creo que es más para la gestión de paquetes y la creación de herramientas como Grunt y Brunch. Por ejemplo, Bootstrap se bower.jsonve así:
Esto realmente no responde a la pregunta. La documentación no aclara el papel de "Los puntos finales primarios de su paquete". Ha indicado la relevancia de main para Brunch, pero no cómo se relaciona con Bower.
BenjaminGolder
Creo que el punto que estaba tratando de hacer es que los archivos principales se utilizan en varias herramientas de compilación con respecto a "estos son los archivos que mi paquete bower intenta distribuir". Todavía es un poco ambiguo con respecto a su verdadera intención.
Kelly J Andrews
El ancla del enlace de documentación está muerta. Vea la respuesta de @Vivian Spencer para una actualización.
Timothy Gu
9
De acuerdo con la especificación JSON de Bower ( https://github.com/bower/spec/blob/master/json.md#main ), la propiedad "principal" se utiliza para enumerar los archivos que se utilizan principalmente en el proyecto. Los archivos enumerados en realidad no son utilizados por Bower de ninguna manera, aparentemente están allí con el propósito de ser utilizados por otras herramientas de compilación.
Aquí está la especificación oficial:
principal
Tipo recomendado : Stringo ArraydeString
Los archivos de actuación primarios necesarios para usar su paquete. Si bien Bower no usa directamente estos archivos, se enumeran con los comandos bower list --jsony bower list --paths, por lo que pueden ser utilizados por herramientas de compilación.
Deben compilarse archivos de preprocesador como CoffeeScript.
No incluya archivos minificados.
Los nombres de archivo no deben tener versiones (Malo: package.1.1.0.js; Bueno: package.js).
Algunas bibliotecas simplemente no funcionarán sin los archivos principales enumerados, wiredep es el ejemplo perfecto.
kboom
@kboom es posible que tenga el problema relacionado con lo que está diciendo: por ejemplo, el archivo css de pdf.js-viewer no se copiará usando main-bower-files, ¿debería ponerlo en main dentro de bower.json? Si es así, ¿tengo que proporcionar la ruta completa para cada archivo? ¡Gracias!
main
propiedad está actualmente en duda y se está debatiendo en un tema abierto en el repositorio de bower github. Busque aquí las definiciones propuestas actuales y la discusión: github.com/bower/bower/issues/935Respuestas:
Según la documentación de Bower.io
Creo que es más para la gestión de paquetes y la creación de herramientas como Grunt y Brunch. Por ejemplo, Bootstrap se
bower.json
ve así:Cuando construyo en Brunch, extrae estos archivos de mi
bower_components
carpeta en mipublic
carpeta.fuente
De acuerdo con la especificación JSON de Bower ( https://github.com/bower/spec/blob/master/json.md#main ), la propiedad "principal" se utiliza para enumerar los archivos que se utilizan principalmente en el proyecto. Los archivos enumerados en realidad no son utilizados por Bower de ninguna manera, aparentemente están allí con el propósito de ser utilizados por otras herramientas de compilación.
Aquí está la especificación oficial:
fuente