Chosen: Não foi escolhido no npm?

Criado em 31 jul. 2013  ·  25Comentários  ·  Fonte: harvesthq/chosen

Existe o arquivo package.json, mas npm não retorna nenhum pacote 'escolhido' correspondente.

Comentários muito úteis

Qual é a dificuldade de adicionar uma definição de pacote no garfo escolhido do caramanchão? É preguiça ou incompetência? Na verdade, você pode satisfazer os usuários do nó até certo ponto, em vez de deixá-los completamente satisfeitos.

Um comentário tão atencioso ... Lembre-se de que o código é aberto e todos contribuem em seu tempo livre. Além disso, todos os recursos extras precisam ser mantidos, o que custa tempo. Mas com certeza, uma vez que existe o repo bower-chosen , um pacote npm não deve estar longe.

@pfiller talvez devêssemos renomear bower-chosen para chosen-packaged (ou algo que não esteja relacionado a um gerente específico) e incluir package.json no repo.

Todos 25 comentários

Atualmente, o arquivo package.json destina-se principalmente a instalar os requisitos de desenvolvimento do Chosen para desenvolvedores.

Como é uma biblioteca que funciona apenas no navegador, não no servidor, faz sentido tê-la no npm? (esta é uma questão real, eu não sou um desenvolvedor node.js, mas um cara de PHP, então eu não conheço as convenções npm)

O principal motivo é usar o Browserify para que em JS possamos fazer var Chosen = require('Chosen'); vez de soltar a tag de script um pouco em todos os lugares. O JS do lado do servidor já usa o formato require , o browserify simplesmente analisa o requer (para simular a bela definição de módulo que o node.js obteve, mas para front-end) e o converte em um grande build.js final (com todas as dependências agrupadas) para servir ao index.html.

+1 sobre este assunto - eu uso o browserify e o escolhido no meu aplicativo, mas atualmente tenho que colocá-lo no diretório vendor , o que é realmente irritante

+1 sobre isso também. Com o Browserify, faz muito sentido estar no NPM.

+1 de mim também :) Também usando o browserify

+1

+1

+1

+1

Se você precisar deste plug-in, só pode fazer $ e jQuery no escopo global e posteriormente chosen = require(../path/chosen.min.js)

exemplo:

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

e você pode usar em seu código $('select').chosen();

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

+1

+1

+1 para suporte do browserify, por favor

A correção aqui é muito fácil, eu acho.

  1. Adicionar um invólucro UMD
  2. Adicione os arquivos construídos ao repo
  3. Publique os arquivos construídos em npm

Se a equipe escolhida estiver interessada em tal RP, me avise e farei uma proposta. Os arquivos construídos também podem ser colocados no Bower, e então não deve haver problemas com os desenvolvedores que usam o Chosen.

@jmeas

Adicione os arquivos construídos ao repo

Isso não vai acontecer. Costumávamos fazer isso e era um pesadelo para a equipe. O JS + CSS compilado não será adicionado ao repo - isso foi discutido muitas vezes no rastreador de problemas.

Versões pré-compiladas são fornecidas na página de lançamentos . Se o gerenciador de pacotes de sua escolha oferece suporte à especificação de pacotes por meio de ZIPs, você deve usá-los. Veja as instruções do

Se o gerenciador de pacotes de sua escolha _não_ suporta ZIPs ou usando a API de lançamentos do GitHub , você deve abrir um problema com eles para adicionar suporte para isso.

Usuários do Browserify, vocês têm duas opções que eu conheço. O primeiro é descrito acima, mas vou resumi-lo mais uma vez:

Solução um: use o Bower e o window

Siga as instruções do README. Infelizmente, você não pode usar npm , até onde eu sei, então configure bower em seu projeto e instale o zip. Adicione um módulo ao seu código com o seguinte:

var $ = require('jquery');

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

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

E funciona! O jQuery será, como você esperava, modificado permanentemente, então você não precisará solicitar que seja escolhido em qualquer outro lugar no aplicativo.

Eu recomendo que você certifique-se de que seu linter gere um erro se você tentar acessar os globais do navegador para garantir que você não comece a fazer referência a window.jQuery qualquer outro lugar em seu código.

Desinteressado no caramanchão e na janela? Eu sinto você. Uma segunda opção é ...

Solução dois: embrulhe você mesmo

Meus aplicativos geralmente têm diretórios vendor para um punhado de bibliotecas que não são empacotadas para lidar com carregadores de módulo. Se você adicionar este invólucro UMD ao redor escolhido, poderá solicitá-lo normalmente. Este wrapper também funcionará para usuários AMD.

Por que não usar apenas o browserify-shim?

Esta é definitivamente uma opção. Os testes do meu aplicativo são executados em Node + JSDom, portanto, ele precisa funcionar sem shimming ou alias das bibliotecas.

No final da semana, espero ter uma compilação do Chosen em npm e bower que está embrulhado em UMD, para que as pessoas possam instalar a partir daí no futuro, sem problemas. Vou mantê-lo atualizado se você me lembrar, então, se você for um futuro leitor e meu garfo estiver desatualizado, basta abrir uma edição e posso cortar um release.

: +1: para componente nativo do caramanchão. Gostaria de poder importar scss arquivos diretamente.

+1 para adicionar o pacote escolhido ao npm.

+9001 para adicionar o pacote escolhido ao npm.

Parece que o desenvolvimento do Chosen está em um ponto lento (por enquanto, pelo menos) e os mantenedores não parecem interessados ​​em atualizar os ambientes nos quais Chosen trabalha.

A melhor maneira de avançar seria prob. é apenas bifurcar este projeto para adicionar suporte a npm (e, se você quiser, suporte a UMD também!). Você poderia publicar um novo lançamento no npm / Bower (talvez em modern-chosen ?) E então abrir um PR para enviar as alterações.

Se eles o fundirem, ótimo - você pode descontinuar seu módulo. Caso contrário, as pessoas começarão a usar seu garfo.

(Estou usando "você" no sentido de "quem quer que seja", em vez de qualquer pessoa em particular: P)

Qual é a dificuldade de adicionar uma definição de pacote no garfo escolhido do caramanchão? É preguiça ou incompetência? Na verdade, você pode satisfazer os usuários do nó até certo ponto, em vez de deixá-los completamente satisfeitos.

Qual é a dificuldade de adicionar uma definição de pacote no garfo escolhido do caramanchão? É preguiça ou incompetência? Na verdade, você pode satisfazer os usuários do nó até certo ponto, em vez de deixá-los completamente satisfeitos.

Um comentário tão atencioso ... Lembre-se de que o código é aberto e todos contribuem em seu tempo livre. Além disso, todos os recursos extras precisam ser mantidos, o que custa tempo. Mas com certeza, uma vez que existe o repo bower-chosen , um pacote npm não deve estar longe.

@pfiller talvez devêssemos renomear bower-chosen para chosen-packaged (ou algo que não esteja relacionado a um gerente específico) e incluir package.json no repo.

Eu configurei um PR (# 2550) que deve cuidar de um pacote npm, por favor, analise o pacote de exemplo anexado a esse PR e como este pacote deve ser. Obrigado!

2550 foi mesclado e Chosen agora também está no NPM como chosen-js

@koenpunt Obrigado! O problema é que o pacote contém arquivos compilados, portanto, não é possível importar scss brutos.

Relacionado: # 2347

Esta página foi útil?
0 / 5 - 0 avaliações