Pegjs: Espaço de trabalho do fio

Criado em 16 mar. 2018  ·  6Comentários  ·  Fonte: pegjs/pegjs

Após 0.11 (mas antes de 0.12 ), estou planejando reorganizar o repositório em um monorepo usando áreas de trabalho do Yarn e reimplementar o módulo pegjs em módulos independentes que vivem principalmente em @pegjs (com as gramáticas oficiais em @peg ).

Abaixo está uma lista de módulos que pretendo implementar atualmente, mas isso pode mudar antes do lançamento da versão 0.12.

Módulos

  • @pegjs/lib wrappers para os recursos mais recentes do ECMAScript usados ​​pelo PEG.js
  • Código comum @pegjs/util compartilhado nos pacotes PEG.js
  • @pegjs/aproveite um conjunto de módulos para simplificar o teste do PEG.js e ferramentas semelhantes
  • @pegjs/design biblioteca de funções e classes para ajudar a construir ASTs e especificações
  • @pegjs/config gerencia e opcionalmente verifica as opções usadas pelo PEG.js
  • @pegjs/language ast classes, opcodes, escritor de código básico e classes de erro
  • @pegjs/parser o analisador gramatical PEG.js
  • Métodos @pegjs/bytecode para trabalhar com o bytecode PEG.js
  • @pegjs/runtime o tempo de execução para o analisador gerado
  • @pegjs/linter várias passagens que podem ser usadas para verificar uma fonte gramatical ou ast
  • @pegjs/javascript um gerador de código ES5/ES20x para o compilador PEG.js
  • @pegjs/compiler executa o linter e mais pass's, antes de gerar o analisador
  • @pegjs/core a biblioteca principal da API
  • @pegjs/cli https://en.wikipedia.org/wiki/Command-line_interface
  • @pegjs/repl https://en.wikipedia.org/wiki/Read –eval–print_loop
  • @pegjs/run #522

Interfaces

  • pegjs Uma versão independente para Node.js que aponta para as versões secundárias mais recentes (por exemplo 0.12.x )
  • @pegjs/browser a versão do navegador (atualmente um pacote bower)
  • @pegjs/x A sem plugins, passagem única, opções mínimas e variante somente de velocidade (inspirada no #348)
  • @pegjs/e adiciona recursos experimentais à gramática e à API (testbed para uso público)
feature task

Comentários muito úteis

@StoneCypher Segure o companheiro do seu cavalo 😆 O Yarn é apenas uma alternativa ao NPM, para que os usuários downstream possam ter NPM, Yarn ou muitos outros que estão surgindo, sem se preocupar com workspaces porque esse é um recurso que será usado apenas pelo root package.json ( "private": true ) dentro deste repositório, todos os submódulos mencionados acima serão módulos independentes publicados no NPM que separam diferentes partes do código e apenas facilitam a vida de mim ou de qualquer pessoa que esteja desenvolvendo e/ou hackear o compilador PEG.js.

Além disso, Rollup e Babel abordam problemas diferentes um do outro e do Yarn:

  • Yarn é um gerenciador de pacotes com suporte para workspace
  • Rollup é um empacotador como o Browserify, só que remove o código sem saída
  • Babel é um transpilador ES2018+ para ES*

Todos 6 comentários

isso significa que os usuários a jusante têm que mudar para o yarn?

Por favor, não mova uma das principais ferramentas da Internet para uma estratégia de construção experimental de nicho em uma infraestrutura de construção diferente gerenciada por uma empresa na qual muitos de nós não confiam

O fio está morrendo e os espaços de trabalho são mal projetados

A maioria dos usuários de nós não mudará para o yarn para você

https://stackoverflow.com/questions/46947557/do-yarn-workspaces-work-with-npm-too

Eu ficaria feliz em ajudá-lo a construir uma estrutura de construção moderna normal que não exija que todos mudem as ferramentas para as coisas do Facebook, se você quiser essa ajuda

Você pode usar rollup e babel (ou qualquer número de outras configurações) para tornar o ES5 simples a partir disso sem sobrecarga. Não requer uma infraestrutura totalmente nova.

No processo, eu poderia adicionar algumas outras coisas realmente importantes, como suporte a typescript e flowtype, suporte a módulo es6 e outras coisas

@StoneCypher Segure o companheiro do seu cavalo 😆 O Yarn é apenas uma alternativa ao NPM, para que os usuários downstream possam ter NPM, Yarn ou muitos outros que estão surgindo, sem se preocupar com workspaces porque esse é um recurso que será usado apenas pelo root package.json ( "private": true ) dentro deste repositório, todos os submódulos mencionados acima serão módulos independentes publicados no NPM que separam diferentes partes do código e apenas facilitam a vida de mim ou de qualquer pessoa que esteja desenvolvendo e/ou hackear o compilador PEG.js.

Além disso, Rollup e Babel abordam problemas diferentes um do outro e do Yarn:

  • Yarn é um gerenciador de pacotes com suporte para workspace
  • Rollup é um empacotador como o Browserify, só que remove o código sem saída
  • Babel é um transpilador ES2018+ para ES*

contanto que isso não me obrigue a fio

Então, você me forçou em fios. Vários dos PRs de outras pessoas que você se recusou a mesclar tentaram retirá-lo, porque yarn está morrendo e uma ferramenta de baixa qualidade que não funciona bem no Windows.

yarn não oferece valor.

yarn oferece uma barreira significativa - muitas pessoas não instalam um novo gerenciador de pacotes para ajudá-lo (eu recusei várias vezes antes de quebrar) e muitas outras pessoas não têm permissão por causa da política de trabalho.

O comportamento de npm mudou. yarn não acompanhou. O comportamento yarn agora difere significativamente das expectativas da comunidade.

O monorepo também não fornece valor, cria uma etapa de compilação extra complexa, desafia as normas e confunde potenciais contribuidores.

Tudo isso foi muito mais trabalho do que o trabalho de recurso que você não está fazendo.

Acho que você pode ter se confundido com a natureza da minha objeção.

Este é um trabalho desperdiçado que dificulta a adesão das pessoas (não que isso importe, já que no mês passado você tornou literalmente impossível para qualquer pessoa contribuir para o que você agora chama de "seu projeto de hobby" e espera substituir por atacado).

Isso retarda a construção e perde as novas ferramentas que npm tem que yarn não tem.

O fio estava morrendo em 2018. É 2020. O fio está basicamente morto agora.

Há anos que não o tenho instalado em nenhum dos meus computadores. Eu tive que reinstalá-lo para você.

Por favor, deixe que este seja um projeto normal com padrões normais de desenvolvimento saudável novamente, em vez de sua base de código privada usando ferramentas marginais que passam três anos sem lançamento, apesar das correções de base de código extremamente importantes no repositório.

Sim, eu vejo você tentando explicar o que yarn faz, mas todo mundo sabe o que yarn faz.

Você criou exatamente a nova infraestrutura que eu lhe pedi para não criar dois anos atrás, e atualmente você a está jogando fora exatamente pelas razões que eu disse que não funcionaria.

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