Pegjs: Espacio de trabajo de hilo

Creado en 16 mar. 2018  ·  6Comentarios  ·  Fuente: pegjs/pegjs

Después de la 0.11 (pero antes de la 0.12 ) planeo reorganizar el repositorio en un monorepo usando los espacios de trabajo de Yarn y volver a implementar el módulo pegjs en módulos independientes que en su mayoría viven en @pegjs (con las gramáticas oficiales en @peg ).

A continuación hay una lista de módulos que actualmente planeo implementar, pero esto podría cambiar antes de que se lance 0.12.

Módulos

  • Envolturas @pegjs/lib para las últimas funciones de ECMAScript utilizadas por PEG.js
  • @pegjs/util código común compartido en los paquetes PEG.js
  • @pegjs/harness un conjunto de módulos para simplificar las pruebas de PEG.js y herramientas similares
  • @pegjs/biblioteca de diseño de funciones y clases para ayudar a crear AST y especificaciones
  • @pegjs/config administrar y, opcionalmente, verificar las opciones utilizadas por PEG.js
  • @pegjs/language clases ast, códigos de operación, escritor de código básico y clases de error
  • @pegjs/parser el analizador de gramática PEG.js
  • Métodos @pegjs/bytecode para trabajar con el código de bytes PEG.js
  • @pegjs/runtime el tiempo de ejecución para el analizador generado
  • @pegjs/linter varios pases que se pueden usar para verificar una fuente de gramática o ast
  • @pegjs/javascript un generador de código ES5/ES20x para el compilador PEG.js
  • @pegjs/compiler ejecuta el linter y más pases, antes de generar el analizador
  • @pegjs/core la biblioteca api principal
  • @pegjs/cli https://en.wikipedia.org/wiki/Command-line_interface
  • @pegjs/repl https://en.wikipedia.org/wiki/Read –eval–print_loop
  • @pegjs/ejecutar #522

Interfaces

  • pegjs Una versión independiente para Node.js que apunta a la última versión menor (por ejemplo 0.12.x )
  • @pegjs/browser la versión del navegador (actualmente un paquete Bower)
  • @pegjs/x A sin complementos, pase único, opciones mínimas y variante solo de velocidad (inspirado en el n.° 348)
  • @pegjs/e agrega funciones experimentales tanto a la gramática como a la API (banco de pruebas para uso público)
feature task

Comentario más útil

@StoneCypher Mantenga al compañero de su caballo 😆 Yarn es solo una alternativa a NPM, por lo que los usuarios intermedios pueden tener NPM, Yarn o muchos otros que están apareciendo, sin preocuparse por los espacios de trabajo porque esta es una característica que solo será utilizada por el root package.json ( "private": true ) dentro de este repositorio, todos los submódulos mencionados anteriormente serán módulos independientes publicados en NPM que separan diferentes partes del código y simplemente me facilitan la vida a mí o a cualquiera que esté desarrollando y/o hackear el compilador PEG.js.

Además, Rollup y Babel abordan problemas diferentes entre sí y con Yarn:

  • Yarn es un administrador de paquetes con soporte de espacio de trabajo
  • Rollup es un paquete como Browserify, solo que elimina el código sin salida
  • Babel es un transpilador de ES2018+ a ES*

Todos 6 comentarios

¿Significa esto que los usuarios intermedios tienen que cambiarse a yarn?

No mueva una de las principales herramientas de Internet a una estrategia de compilación experimental de nicho en una infraestructura de compilación diferente administrada por una empresa en la que muchos de nosotros no confiamos.

El hilo se está muriendo y los espacios de trabajo están mal diseñados

La mayoría de los usuarios de nodos no cambiarán a yarn por ti

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

Estaría feliz de ayudarlo a construir una estructura de construcción moderna normal que no requiera que todos cambien las herramientas a las cosas de Facebook, si desea esa ayuda.

Puede usar rollup y babel (o cualquier cantidad de otras configuraciones) para hacer ES5 simple a partir de eso sin gastos generales. No requiere una nueva infraestructura completa.

En el proceso, podría agregar algunas otras cosas realmente importantes, como compatibilidad con mecanografiado y tipo de flujo, compatibilidad con el módulo es6 y otras cosas.

@StoneCypher Mantenga al compañero de su caballo 😆 Yarn es solo una alternativa a NPM, por lo que los usuarios intermedios pueden tener NPM, Yarn o muchos otros que están apareciendo, sin preocuparse por los espacios de trabajo porque esta es una característica que solo será utilizada por el root package.json ( "private": true ) dentro de este repositorio, todos los submódulos mencionados anteriormente serán módulos independientes publicados en NPM que separan diferentes partes del código y simplemente me facilitan la vida a mí o a cualquiera que esté desarrollando y/o hackear el compilador PEG.js.

Además, Rollup y Babel abordan problemas diferentes entre sí y con Yarn:

  • Yarn es un administrador de paquetes con soporte de espacio de trabajo
  • Rollup es un paquete como Browserify, solo que elimina el código sin salida
  • Babel es un transpilador de ES2018+ a ES*

siempre y cuando esto no me obligue a hilo

Entonces, me obligaste a escribir hilo. Varios de los PR de otras personas que se ha negado a fusionar han intentado retirarlo porque yarn está muriendo y es una herramienta de baja calidad que no funciona bien en Windows.

yarn no ofrece ningún valor.

yarn ofrece una barrera significativa: muchas personas no instalarán un nuevo administrador de paquetes para ayudarlo (me negué varias veces antes de colapsar) y muchas otras personas no pueden hacerlo debido a la política de trabajo.

El comportamiento de npm ha cambiado. yarn no se ha mantenido al día. El comportamiento yarn ahora difiere significativamente de las expectativas de la comunidad.

El monorepo tampoco proporciona valor, crea un paso de construcción adicional complejo, desafía las normas y confunde a los contribuyentes potenciales.

Todo esto fue mucho más trabajo que el trabajo de características que no estás haciendo.

Creo que puede haberse confundido acerca de la naturaleza de mi objeción.

Este es un trabajo desperdiciado que hace que sea más difícil para las personas unirse (no es que importe, ya que desde el mes pasado hiciste que sea literalmente imposible que alguien contribuya a lo que ahora llamas "tu proyecto de pasatiempo" y esperas reemplazarlo al por mayor).

Esto ralentiza la construcción y pierde las nuevas herramientas que tiene npm y yarn no.

Yarn estaba muriendo en 2018. Es 2020. Yarn está básicamente muerto ahora.

Hace años que no lo tengo instalado en ninguno de mis ordenadores. Tuve que reinstalarlo por ti.

Deje que este sea un proyecto normal con patrones de desarrollo normales y saludables nuevamente, en lugar de su base de código privada que usa herramientas marginales que pasan tres años sin un lanzamiento a pesar de las correcciones de base de código extremadamente importantes en el repositorio.

Sí, te veo tratando de explicar qué hace yarn , pero todos saben qué hace yarn .

Creaste exactamente la nueva infraestructura que te pedí que no crearas hace dos años, y actualmente la estás desechando exactamente por las razones por las que dije que no funcionaría.

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