Pegjs: Espace de travail du fil

Créé le 16 mars 2018  ·  6Commentaires  ·  Source: pegjs/pegjs

Après 0.11 (mais avant 0.12 ), je prévois de réorganiser le référentiel en un monorepo en utilisant des espaces de travail Yarn et de réimplémenter le module pegjs en modules indépendants qui vivent principalement dans @pegjs (avec les grammaires officielles dans @peg ).

Vous trouverez ci-dessous une liste de modules que je prévois actuellement d'implémenter, mais cela pourrait changer avant la sortie de la version 0.12.

Modules

  • @pegjs/lib wrappers pour les dernières fonctionnalités d'ECMAScript utilisées par PEG.js
  • @pegjs/util code commun partagé entre les packages PEG.js
  • @pegjs/harness un ensemble de modules pour simplifier le test de PEG.js et d'outils similaires
  • @pegjs/design bibliothèque de fonctions et de classes pour aider à créer des AST et des spécifications
  • @pegjs/config gère et vérifie éventuellement les options utilisées par PEG.js
  • @pegjs/language ast classes, opcodes, écrivain de code de base et classes d'erreur
  • @pegjs/parser l'analyseur de grammaire PEG.js
  • Méthodes @pegjs/bytecode pour travailler avec le bytecode PEG.js
  • @pegjs/runtime le runtime pour les analyseurs générés
  • @pegjs/linter divers pass qui peuvent être utilisés pour vérifier une source de grammaire ou ast
  • @pegjs/javascript un générateur de code ES5/ES20x pour le compilateur PEG.js
  • @pegjs/compiler exécute le linter et d'autres passes, avant de générer l'analyseur
  • @pegjs/core la bibliothèque API principale
  • @pegjs/cli https://en.wikipedia.org/wiki/Command-line_interface
  • @pegjs/repl https://en.wikipedia.org/wiki/Read –eval–print_loop
  • @pegjs/course #522

Interfaces

  • pegjs Une version autonome pour Node.js qui pointe vers la dernière version mineure (par exemple 0.12.x )
  • @pegjs/browser la version du navigateur (actuellement un package bower)
  • @pegjs/x Un pas de plugins, un seul passage, des options minimales et une variante de vitesse uniquement (inspiré de #348)
  • @pegjs/e ajoute des fonctionnalités expérimentales à la fois à la grammaire et à l'API (banc d'essai à usage public)
feature task

Commentaire le plus utile

@StoneCypher Tenez le compagnon de votre cheval 😆 Le fil n'est qu'une alternative à NPM, de sorte que les utilisateurs en aval peuvent avoir NPM, Yarn ou les nombreux autres qui apparaissent, sans se soucier des espaces de travail car il s'agit d'une fonctionnalité qui ne sera utilisée que par le root package.json ( "private": true ) dans ce référentiel, tous les sous-modules mentionnés ci-dessus seront des modules indépendants publiés sur NPM qui séparent différentes parties du code et facilitent simplement la vie pour moi ou pour toute personne développant et/ou piratage sur le compilateur PEG.js.

De plus, Rollup et Babel s'attaquent à des problèmes différents l'un de l'autre et de Yarn :

  • Yarn est un gestionnaire de packages avec prise en charge de l'espace de travail
  • Rollup est un bundler comme Browserify, seulement il supprime le code sans issue
  • Babel est un transpileur ES2018+ vers ES*

Tous les 6 commentaires

Cela signifie-t-il que les utilisateurs en aval doivent passer au fil ?

S'il vous plaît, ne déplacez pas l'un des principaux outils d'Internet dans une stratégie de construction expérimentale de niche sur une infrastructure de construction différente gérée par une entreprise à laquelle beaucoup d'entre nous ne font pas confiance

Le fil se meurt et les espaces de travail sont mal conçus

La plupart des utilisateurs de nœuds ne passeront pas au fil pour vous

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

Je serais heureux de vous aider à construire une structure de construction moderne normale qui n'oblige pas tout le monde à basculer les outils vers les trucs de Facebook, si vous voulez cette aide

Vous pouvez utiliser rollup et babel (ou n'importe quel nombre d'autres configurations) pour créer un ES5 simple à partir de cela sans frais généraux. Ne nécessite pas une nouvelle infrastructure complète.

Dans le processus, je pourrais ajouter d'autres éléments très importants, comme la prise en charge de typescript et flowtype, la prise en charge du module es6 et d'autres éléments.

@StoneCypher Tenez le compagnon de votre cheval 😆 Le fil n'est qu'une alternative à NPM, de sorte que les utilisateurs en aval peuvent avoir NPM, Yarn ou les nombreux autres qui apparaissent, sans se soucier des espaces de travail car il s'agit d'une fonctionnalité qui ne sera utilisée que par le root package.json ( "private": true ) dans ce référentiel, tous les sous-modules mentionnés ci-dessus seront des modules indépendants publiés sur NPM qui séparent différentes parties du code et facilitent simplement la vie pour moi ou pour toute personne développant et/ou piratage sur le compilateur PEG.js.

De plus, Rollup et Babel s'attaquent à des problèmes différents l'un de l'autre et de Yarn :

  • Yarn est un gestionnaire de packages avec prise en charge de l'espace de travail
  • Rollup est un bundler comme Browserify, seulement il supprime le code sans issue
  • Babel est un transpileur ES2018+ vers ES*

tant que cela ne me force pas à faire du fil

Alors, tu m'as forcé à faire de la laine. Plusieurs des PR d'autres personnes que vous avez refusé de fusionner ont essayé de le retirer, car yarn est en train de mourir et un outil de mauvaise qualité qui ne fonctionne pas bien sous Windows.

yarn n'offre aucune valeur.

yarn offre un obstacle important - de nombreuses personnes n'installeront pas un nouveau gestionnaire de packages pour vous aider (j'ai refusé plusieurs fois avant de tomber en panne) et de nombreuses autres personnes n'y sont pas autorisées en raison de la politique de travail.

Le comportement de npm a changé. yarn n'a pas suivi. Le comportement yarn diffère désormais considérablement des attentes de la communauté.

Le monorepo ne fournit pas non plus de valeur, crée une étape de construction supplémentaire complexe, défie les normes et confond les contributeurs potentiels.

Tout cela représentait beaucoup plus de travail que le travail sur les fonctionnalités que vous ne faites pas.

Je pense que vous avez peut-être été confus quant à la nature de mon objection.

C'est un travail inutile qui rend plus difficile l'adhésion des gens (ce n'est pas grave, puisque depuis le mois dernier, vous avez rendu littéralement impossible pour quiconque de contribuer à ce que vous appelez maintenant "votre projet de passe-temps", et attendez-vous à le remplacer en gros.)

Cela ralentit la construction et perd le nouvel outil que npm possède et que yarn n'a pas.

Le fil était en train de mourir en 2018. Nous sommes en 2020. Le fil est pratiquement mort maintenant.

Je ne l'ai installé sur aucun de mes ordinateurs depuis des années. J'ai dû le réinstaller pour vous.

Veuillez laisser ce projet être à nouveau un projet normal avec des modèles de développement sains normaux, au lieu de votre base de code privée utilisant des outils marginaux qui dure trois ans sans publication malgré des correctifs de base de code extrêmement importants dans le référentiel.

Oui, je vous vois essayer d'expliquer ce que fait yarn , mais tout le monde sait ce que fait yarn .

Vous avez créé exactement la nouvelle infrastructure que je vous ai demandé de ne pas créer il y a deux ans, et vous la jetez actuellement exactement pour les raisons pour lesquelles j'ai dit que cela ne fonctionnerait pas.

Cette page vous a été utile?
0 / 5 - 0 notes