Yarn Workspace
See original GitHub issueAfter 0.11 (but before 0.12) I’m planning to reorganise the repository into a monorepo using Yarn workspaces and re-implement the pegjs module into independent modules that mostly live in @pegjs (with the official grammars in @peg).
Below is a list of modules that I currently plan to implement, but this might change before 0.12 is released.
Modules
- @pegjs/lib wrappers for the latest features of ECMAScript used by PEG.js
- @pegjs/util common code shared across the PEG.js packages
- @pegjs/harness a set of modules to simplify testing PEG.js and similar tools
- @pegjs/design library of functions and classes to help build ASTs and specs
- @pegjs/config manage and optionally verify options used by PEG.js
- @pegjs/language ast classes, opcodes, basic code writer and error classes
- @pegjs/parser the PEG.js grammar parser
- @pegjs/bytecode methods to work with the PEG.js bytecode
- @pegjs/runtime the runtime for generated parser’s
- @pegjs/linter various pass’s that can be used to check a grammar source or ast
- @pegjs/javascript a ES5/ES20x code generator for the PEG.js compiler
- @pegjs/compiler runs the linter and more pass’s, before generating the parser
- @pegjs/core the main api library
- @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 A standalone release for Node.js that points to the latest minor release’s (e.g.
0.12.x) - @pegjs/browser the browser release (currently a bower package)
- @pegjs/x A no plugins, single pass, minimal options and speed-only variant (inspired by #348)
- @pegjs/e adds experimental features to both the grammar and API (testbed for public use)
Issue Analytics
- State:
- Created 6 years ago
- Reactions:6
- Comments:6 (1 by maintainers)
Top Results From Across the Web
Workspaces - Yarn
Workspaces are a new way to set up your package architecture that's available by default starting from Yarn 1.0. It allows you to...
Read more >Yarn workspaces — monorepo beginner's guide - Medium
Yarn Workspaces is a feature that allows users to install dependencies from multiple package.json files in subfolders of a single root package.json file,...
Read more >Yarn Workspaces: Organize Your Project's Codebase Like A Pro
Yarn is a package manager by the folks at Facebook, and it has a great feature called Yarn workspaces. Yarn workspaces let you...
Read more >Yarn workspace tutorial, introduction and cheatsheet
It allows you to setup multiple packages in such a way that you only need to run yarn install once to install all...
Read more >Monorepo Javascript Projects with Yarn Workspaces and Lerna
Yarn workspaces are used to optimize dependency management. When we use yarn workspaces, all project dependencies are installed in one go. Tools ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

@StoneCypher Hold your horse’s mate 😆 Yarn is just an alternative to NPM, so the downstream users can have either NPM, Yarn or the many others that are popping up, without worrying about workspaces because this is a feature that will only be used by the root package.json (
"private": true) within this repo, all the sub-modules mentioned above will be independent modules published on NPM that separate different parts of the code and just make life easier for me or anyone developing and/or hacking on the PEG.js compiler.Also, Rollup and Babel both tackle different problems from each other and Yarn:
So, you forced me into yarn. Several of the PRs from other people that you have refused to merge have tried to take it back out, because
yarnis dying, and a low quality tool that doesn’t work well on Windows.yarnoffers no value.yarnoffers a significant barrier - many people won’t install a new package manager to help you (I refused several times before breaking down,) and many other people aren’t allowed to because of work policy.The behavior of
npmhas changed.yarnhas not kept up.yarnbehavior now significantly differs from community expectations.The monorepo also does not provide value, creates a complex extra build step, defies norms, and confuses potential contributors.
All of this was much more work than the feature work you aren’t doing.
I think you may have gotten confused about the nature of my objection.
This is wasted work that makes it harder for people to join (not that it matters, since as of last month you made it literally impossible for anyone to contribute to what you now call “your hobby project,” and expect to wholesale replace.)
This slows down the build, and loses the new tooling that
npmhas thatyarndoes not.Yarn was dying in 2018. It’s 2020. Yarn’s basically dead now.
I haven’t had it installed on any of my computers for years. I had to reinstall it for you.
Please let this be a normal project with normal healthy development patterns again, instead of your private codebase using fringe tools that goes three years without a release despite extremely important codebase fixes in the repo.
Yes, I see you trying to explain what
yarndoes, but everyone knows whatyarndoes.You created exactly the new infrastructure I asked you not to create two years ago, and you’re currently throwing it away for exactly the reasons I said it wouldn’t work.