Chosen: ¿Elegido no en npm?

Creado en 31 jul. 2013  ·  25Comentarios  ·  Fuente: harvesthq/chosen

Existe el archivo package.json, pero npm no devuelve ningún paquete 'elegido' correspondiente.

Comentario más útil

¿Cuál es la dificultad para agregar una definición de paquete en la bifurcación elegida por Bower? ¿Es pereza o incompetencia? En el mismo contrato de arrendamiento, puede satisfacer a los usuarios de nodos hasta cierto punto en lugar de enjuagarlos por completo.

Qué comentario tan reflexivo ... Recuerda que es de código abierto y que todo el mundo contribuye en su tiempo libre. Además de eso, se deben mantener todas las funciones adicionales, lo que cuesta tiempo. Pero claro, dado que existe el repositorio bower-chosen , un paquete npm no debería estar muy lejos.

@pfiller tal vez deberíamos cambiar el nombre de bower-chosen a chosen-packaged (o algo más que no esté relacionado con un administrador específico) e incluir un package.json en el repositorio.

Todos 25 comentarios

Actualmente, el archivo package.json está destinado principalmente a instalar los requisitos de desarrollo de Chosen para desarrolladores.

Como es una biblioteca que funciona solo en el navegador, no en el lado del servidor, ¿tiene sentido tenerla en npm? (esta es una pregunta real, no soy un desarrollador de node.js sino un tipo de PHP, así que no conozco las convenciones de npm)

La razón principal es usar Browserify para que en JS podamos hacer var Chosen = require('Chosen'); lugar de soltar un poco la etiqueta del script en todas partes. JS del lado del servidor ya usa el formato require , browserify simplemente analiza los requisitos (para simular la definición de módulo agradable que obtuvo node.js, pero para el front-end) y lo convierte en un gran build.js final (con todas las dependencias incluidas) para servir en index.html.

+1 en este tema: uso browserify y uso elegido en mi aplicación, pero actualmente tengo que ponerlo en el directorio vendor , lo cual es realmente molesto

+1 en esto también. Con Browserify tiene mucho sentido estar en NPM.

+1 de mí también :) También usando browserify

+1

+1

+1

+1

Si necesita este complemento, solo puede hacer $ y jQuery en el alcance global y luego chosen = require(../path/chosen.min.js)

ejemplo:

 var $ = require('jquery');
 window.$ = $;
 window.jQuery = $;
 var chosen = require(./chosen.jquery.min.js)

y puedes usar en tu código $('select').chosen();

Fuente: http://www.codefornow.com/2014/06/08/browserify-jquery-and-jquery-plugins/

+1

+1

+1 para asistencia de browserify por favor

La solución aquí es bastante fácil, creo.

  1. Agregar un contenedor UMD
  2. Agregue los archivos compilados al repositorio
  3. Publique los archivos construidos en npm

Si el equipo elegido está interesado en un PR, avíseme y armaré algo. Los archivos compilados también se pueden colocar en Bower, y luego no debería haber ningún problema con los desarrolladores que usan Chosen.

@jmeas

Agregue los archivos compilados al repositorio

Esto no va a pasar. Solíamos hacer esto y fue una pesadilla para el equipo. El JS + CSS compilado no se agregará al repositorio; esto se ha discutido muchas veces en el rastreador de problemas.

Las versiones precompiladas se proporcionan a través de la página de lanzamientos . Si el administrador de paquetes de su elección admite la especificación de paquetes a través de ZIP, debe usarlos. Consulte las instrucciones de la

Si su administrador de paquetes de elección _no_ admite ZIP o utiliza la API de versiones de GitHub , debe abrir un problema con ellos para agregar soporte para esto.

Usuarios de Browserify, usted tiene dos opciones que yo conozco. El primero se describe arriba, pero lo resumiré una vez más:

Solución 1: use Bower y window

Siga las instrucciones del archivo README. Desafortunadamente, no puede usar npm , hasta donde yo sé, así que configure bower en su proyecto e instale el zip. Agregue un módulo a su código con lo siguiente:

var $ = require('jquery');

// Chosen requires this :(
window.jQuery = $;

require('path/to/bower_components/chosen_v1.3.0/chosen.jquery');

¡Y funciona! jQuery, como era de esperar, se modificará permanentemente, por lo que no será necesario que se elija en ningún otro lugar de la aplicación.

Le recomiendo que se asegure de que su linter arroje un error si intenta acceder a los globales del navegador para asegurarse de que no comience a hacer referencia a este window.jQuery ningún otro lugar de su código.

¿No te interesa la glorieta y la ventana? Te siento. Una segunda opción es ...

Solución 2: envuélvalo usted mismo

Mis aplicaciones a menudo tienen directorios vendor para el puñado de bibliotecas que no están empaquetadas para manejar cargadores de módulos. Si agrega este contenedor UMD alrededor de elegido, puede solicitarlo como de costumbre. Este contenedor también funcionará para los usuarios de AMD.

¿Por qué no usar browserify-shim?

Definitivamente esta es una opción. Las pruebas de mi aplicación se ejecutan en Node + JSDom, por lo que debe funcionar sin shimming o aliasing de las bibliotecas.

Para el final de la semana, espero tener una compilación de Chosen en npm y bower que esté envuelto en UMD, para que la gente pueda instalar desde allí en el futuro por cualquier problema. Lo mantendré actualizado si me lo recuerdas, así que si eres un futuro lector y mi bifurcación está desactualizada, simplemente abre una edición y puedo cortar una publicación.

: +1: para componente de enramada nativa. Me gustaría poder importar archivos scss directamente.

+1 para agregar el paquete Elegido a npm.

+9001 para agregar el paquete Elegido a npm.

Parece que el desarrollo en Chosen está en un punto lento (al menos por ahora) y los mantenedores no parecen interesados ​​en actualizar los entornos en los que trabaja Chosen.

Probablemente el mejor camino a seguir. sea ​​simplemente bifurcar este proyecto para agregar soporte npm (y, si lo desea, soporte UMD, ¡también!). Podría publicar una nueva versión en npm / Bower (tal vez por debajo de modern-chosen ?) Y luego abrir un PR para actualizar los cambios.

Si lo fusionan, genial, puede desaprobar su módulo. De lo contrario, la gente comenzará a usar su tenedor.

(Estoy usando "usted" en el sentido de "quien sea", en lugar de cualquier persona en particular: P)

¿Cuál es la dificultad para agregar una definición de paquete en la bifurcación elegida por Bower? ¿Es pereza o incompetencia? En el mismo contrato de arrendamiento, puede satisfacer a los usuarios de nodos hasta cierto punto en lugar de enjuagarlos por completo.

¿Cuál es la dificultad para agregar una definición de paquete en la bifurcación elegida por Bower? ¿Es pereza o incompetencia? En el mismo contrato de arrendamiento, puede satisfacer a los usuarios de nodos hasta cierto punto en lugar de enjuagarlos por completo.

Qué comentario tan reflexivo ... Recuerda que es de código abierto y que todo el mundo contribuye en su tiempo libre. Además de eso, se deben mantener todas las funciones adicionales, lo que cuesta tiempo. Pero claro, dado que existe el repositorio bower-chosen , un paquete npm no debería estar muy lejos.

@pfiller tal vez deberíamos cambiar el nombre de bower-chosen a chosen-packaged (o algo más que no esté relacionado con un administrador específico) e incluir un package.json en el repositorio.

He configurado un PR (# 2550) que debería ocuparse de un paquete npm, por favor revise el paquete de ejemplo adjunto a ese PR y cómo debería verse este paquete. ¡Gracias!

2550 se fusiona y Chosen ahora también está en NPM como chosen-js

@koenpunt ¡Gracias! El problema es que el paquete contiene archivos compilados, por lo que no se pueden importar archivos scss sin procesar.

Relacionado: # 2347

¿Fue útil esta página
0 / 5 - 0 calificaciones