Cli: [FEATURE] padrão de configuração para todos os pacotes

Criado em 15 mai. 2020  ·  2Comentários  ·  Fonte: npm/cli

Não tenho certeza se isso é viável ou se pertence ao repositório Node.js.

O que? Por que

Freqüentemente, há casos em que certas dependências requerem configurações específicas de compilação para funcionar corretamente em um ambiente geral (por exemplo).

Esta configuração pode ser uma configuração Babel, uma configuração Webpack ou algo personalizado apenas para aquele pacote.

Como está atualmente, não existe uma maneira padronizada de configurar pacotes.

Algumas pessoas usam uma convenção onde colocam um campo em package.json com o nome do pacote, e um pacote pode ler isso. Mas não parece padrão o suficiente.

Quando

Quando um pacote precisa de configuração personalizada para tempo de execução ou tempo de construção.

Onde

Quão

Às vezes, o JavaScript precisa de etapas de construção para certos casos. Este recurso de configuração teria uma opção opcional de "dependências de construção" que pode ser passada para qualquer pacote (se eles constroem módulos nativos ou apenas transpilam JavaScript para uma forma inferior).

Dependendo da configuração, um pacote pode precisar de certas dependências que de outra forma não seriam necessárias (por exemplo, dependências de compilação).

Portanto, o sistema de pacotes seria inteligente o suficiente, pois se um usuário tiver certa configuração de pacote, ele pode determinar quais dependências adicionais instalar.

Talvez esse recurso precise apenas ser expandido do sistema de módulo nativo existente para o sistema JavaScript geral (de uma forma fácil de usar, os módulos nativos são complicados).

Isso também pode ser muito útil para coisas como dependências opcionais. Seria fácil, com config, especificar que uma biblioteca use (por exemplo) three vez de babylonjs . Isso faria com que a dependência apropriada fosse instalada. É semelhante às dependências de pares, mas mais fácil, e um determinado pacote que depende de dependências opcionais teria uma maneira padrão de acessar a API de configuração de maneira confiável para determinar se certas condições são especificadas (atualmente é complicado, e qualquer travessia de cystom de node_modules não é padrão nesses casos).

Comportamento Atual

  • n / D

Comportamento esperado

  • coberto acima em um alto nível

Como outro exemplo, às vezes os consumidores de pacote precisam consumir o código-fonte do pacote em vez da saída compilada usual para compilar o código de maneiras diferentes (normalmente, para mim, tenho vontade de fazer isso com o Webpack).

Em geral, há problemas com esse tipo de coisa, que o NPM até agora não oferece uma maneira comum de lidar.

Quem

autores de pacotes e seus usuários

Referências

  • n / D
Enhancement

Comentários muito úteis

Esse recurso será incrível porque às vezes os desenvolvedores enfrentam muitas dificuldades para consertar esses tipos de problemas.

Todos 2 comentários

Este recurso permitiria aos autores de pacotes, de uma forma padrão, adicionar recursos aos seus pacotes onde eles podem dizer "Oh, você deseja que o CSS seja externo em vez de embutido nos arquivos de pacote usuais, sem problemas, basta adicionar tal- e tal opção na configuração do seu projeto, então este pacote irá revelar automaticamente qualquer CSS de sua saída ", e então dada a configuração padrão, o autor do pacote pode usar Webpack, Babel, ou qualquer ferramenta desejada, para alcançar o resultado.

Nesse sentido, todos os pacotes teriam alguma forma padrão de permitir aos usuários comunicar opções a eles, onde as opções podem ditar conjuntos alternativos de dependências ou etapas de construção, independentemente de quais arquivos-fonte ou ferramentas de construção o pacote usa.

Haveria configuração no lado do usuário, mas tais opções seriam mapeadas para configuração no lado do pacote que ditaria dependências (e, portanto, ferramentas de construção) a serem executadas durante a instalação, ou similar.

Pude ver a maioria dos pacotes enviando a saída do código-fonte padrão e alguns usuários personalizando-o.

Acontece frequentemente que a melhor maneira de obter o código-fonte TypeScript para compilar, com recursos completos que de outra forma não são

O TypeScript proclama que os consumidores nunca devem transpilar a fonte do TypeScript, mas eles cavaram um buraco no qual pode ser uma necessidade devido a esse problema vinculado. Estou usando-o apenas como um exemplo em que um padrão de configuração pode ser de grande utilidade.

Esse recurso será incrível porque às vezes os desenvolvedores enfrentam muitas dificuldades para consertar esses tipos de problemas.

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

Questões relacionadas

Cohen-Carlisle picture Cohen-Carlisle  ·  4Comentários

billop picture billop  ·  3Comentários

FaizenR picture FaizenR  ·  3Comentários

goldingdamien picture goldingdamien  ·  4Comentários

jaydenseric picture jaydenseric  ·  3Comentários