Pegjs: Garn-Arbeitsbereich

Erstellt am 16. März 2018  ·  6Kommentare  ·  Quelle: pegjs/pegjs

Nach 0.11 (aber vor 0.12 ) plane ich, das Repository mithilfe von Yarn-Arbeitsbereichen in ein Monorepo zu reorganisieren und das pegjs -Modul in unabhängige Module neu zu implementieren, die hauptsächlich in @pegjs (mit den offiziellen Grammatiken in @peg ) leben.

Unten ist eine Liste von Modulen, die ich derzeit zu implementieren plane, aber dies könnte sich ändern, bevor 0.12 veröffentlicht wird.

Module

  • @pegjs/lib- Wrapper für die neuesten Funktionen von ECMAScript, die von PEG.js verwendet werden
  • Gemeinsamer @pegjs/util -Code, der von den PEG.js-Paketen gemeinsam genutzt wird
  • @pegjs/harness eine Reihe von Modulen, um das Testen von PEG.js und ähnlichen Tools zu vereinfachen
  • @pegjs/design- Bibliothek mit Funktionen und Klassen zum Erstellen von ASTs und Spezifikationen
  • @pegjs/config verwaltet und überprüft optional die von PEG.js verwendeten Optionen
  • @pegjs/language Ast- Klassen, Opcodes, grundlegende Codeschreiber- und Fehlerklassen
  • @pegjs/ parser der PEG.js-Grammatikparser
  • @pegjs/bytecode- Methoden zum Arbeiten mit dem PEG.js-Bytecode
  • @pegjs/runtime die Laufzeit für generierte Parser
  • @pegjs/linter verschiedene Pässe, die verwendet werden können, um eine Grammatikquelle oder einen Ast zu überprüfen
  • @pegjs/javascript ein ES5/ES20x-Codegenerator für den PEG.js-Compiler
  • @pegjs/compiler führt den Linter und weitere Durchgänge aus, bevor der Parser generiert wird
  • @pegjs/core die Haupt-API-Bibliothek
  • @pegjs/cli https://en.wikipedia.org/wiki/Command-line_interface
  • @pegjs/repl https://en.wikipedia.org/wiki/Read –eval–print_loop
  • @pegjs/lauf #522

Schnittstellen

  • pegjs Eine eigenständige Version für Node.js, die auf die neuesten Nebenversionen verweist (z. B. 0.12.x )
  • @pegjs/browser die Browserversion (derzeit ein Bower-Paket)
  • @pegjs/x A keine Plugins, Single-Pass, minimale Optionen und reine Geschwindigkeitsvariante (inspiriert von #348)
  • @pegjs/e fügt sowohl der Grammatik als auch der API experimentelle Funktionen hinzu (Testbed für die öffentliche Nutzung)
feature task

Hilfreichster Kommentar

@StoneCypher Halten Sie den Kumpel Ihres Pferdes 😆 Garn ist nur eine Alternative zu NPM, sodass die nachgeschalteten Benutzer entweder NPM, Garn oder die vielen anderen haben können, die auftauchen, ohne sich Gedanken über Arbeitsbereiche machen zu müssen, da dies eine Funktion ist, die nur von verwendet wird root package.json ( "private": true ) innerhalb dieses Repos sind alle oben erwähnten Untermodule unabhängige Module, die auf NPM veröffentlicht werden, die verschiedene Teile des Codes trennen und mir oder jedem, der entwickelt und/oder entwickelt, das Leben erleichtern Hacken auf dem PEG.js-Compiler.

Außerdem gehen Rollup und Babel beide unterschiedliche Probleme an und Yarn:

  • Yarn ist ein Paketmanager mit Workspace-Unterstützung
  • Rollup ist ein Bundler wie Browserify, nur dass es Sackgassen-Code entfernt
  • Babel ist ein ES2018+-zu-ES*-Transpiler

Alle 6 Kommentare

Bedeutet dies, dass nachgeschaltete Anwender auf Garn umsteigen müssen?

Bitte verschieben Sie eines der wichtigsten Tools des Internets nicht in eine experimentelle Nischen-Build-Strategie auf einer anderen Build-Infrastruktur, die von einem Unternehmen verwaltet wird, dem viele von uns nicht vertrauen

Das Garn stirbt und die Arbeitsplätze sind schlecht gestaltet

Die meisten Knotenbenutzer werden für Sie nicht zu Garn wechseln

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

Ich helfe Ihnen gerne beim Aufbau einer normalen, modernen Build-Struktur, bei der nicht alle Tools auf Facebooks Zeug umsteigen müssen, wenn Sie diese Hilfe wünschen

Sie können Rollup und Babel (oder eine beliebige Anzahl anderer Setups) verwenden, um ohne Overhead einfachen ES5 daraus zu machen. Erfordert keine komplett neue Infrastruktur.

Dabei konnte ich einige andere wirklich wichtige Dinge hinzufügen, wie Typoskript- und Flowtype-Unterstützung, es6-Modulunterstützung und andere Dinge

@StoneCypher Halten Sie den Kumpel Ihres Pferdes 😆 Garn ist nur eine Alternative zu NPM, sodass die nachgeschalteten Benutzer entweder NPM, Garn oder die vielen anderen haben können, die auftauchen, ohne sich Gedanken über Arbeitsbereiche machen zu müssen, da dies eine Funktion ist, die nur von verwendet wird root package.json ( "private": true ) innerhalb dieses Repos sind alle oben erwähnten Untermodule unabhängige Module, die auf NPM veröffentlicht werden, die verschiedene Teile des Codes trennen und mir oder jedem, der entwickelt und/oder entwickelt, das Leben erleichtern Hacken auf dem PEG.js-Compiler.

Außerdem gehen Rollup und Babel beide unterschiedliche Probleme an und Yarn:

  • Yarn ist ein Paketmanager mit Workspace-Unterstützung
  • Rollup ist ein Bundler wie Browserify, nur dass es Sackgassen-Code entfernt
  • Babel ist ein ES2018+-zu-ES*-Transpiler

solange mich das nicht zum Garn zwingt

Also hast du mich in Garn gezwungen. Mehrere der PRs von anderen Leuten, die Sie sich geweigert haben, zusammenzuführen, haben versucht, es wieder herauszunehmen, weil yarn im Sterben liegt und ein Tool von geringer Qualität ist, das unter Windows nicht gut funktioniert.

yarn bietet keinen Wert.

yarn stellt ein erhebliches Hindernis dar – viele Leute werden keinen neuen Paketmanager installieren, um Ihnen zu helfen (ich habe mehrmals abgelehnt, bevor ich zusammenbrach), und viele andere Leute dürfen dies aufgrund von Arbeitsrichtlinien nicht.

Das Verhalten von npm hat sich geändert. yarn hat nicht mitgehalten. Das Verhalten von yarn weicht jetzt erheblich von den Erwartungen der Community ab.

Das Monorepo bietet auch keinen Wert, schafft einen komplexen zusätzlichen Build-Schritt, widersetzt sich Normen und verwirrt potenzielle Mitwirkende.

All dies war viel mehr Arbeit als die Feature-Arbeit, die Sie nicht machen.

Ich denke, Sie sind vielleicht verwirrt über die Art meines Einwands.

Das ist verschwendete Arbeit, die es den Leuten schwerer macht, beizutreten (nicht, dass es eine Rolle spielt, da Sie es seit letztem Monat buchstäblich unmöglich gemacht haben, zu dem beizutragen, was Sie jetzt „Ihr Hobbyprojekt“ nennen, und erwarten, dass es vollständig ersetzt wird.)

Dies verlangsamt den Build und geht das neue Werkzeug verloren, das npm hat, das yarn nicht hat.

Yarn starb 2018. Es ist 2020. Yarn ist jetzt im Grunde tot.

Ich habe es seit Jahren auf keinem meiner Computer installiert. Ich musste es für dich neu installieren.

Bitte lassen Sie dies wieder ein normales Projekt mit normalen gesunden Entwicklungsmustern sein, anstatt Ihre private Codebasis mit Randtools zu verwenden, die trotz extrem wichtiger Codebasis-Korrekturen im Repo drei Jahre ohne Veröffentlichung vergeht.

Ja, ich sehe, Sie versuchen zu erklären, was yarn macht, aber jeder weiß, was yarn macht.

Sie haben genau die neue Infrastruktur geschaffen, um deren Schaffung ich Sie vor zwei Jahren gebeten hatte, und Sie werfen sie derzeit aus genau den Gründen weg, aus denen ich gesagt habe, dass sie nicht funktionieren würde.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen