Pegjs: 纱线工作区

创建于 2018-03-16  ·  6评论  ·  资料来源: pegjs/pegjs

0.11之后(但在0.12之前),我计划使用 Yarn 工作区将存储库重新组织成一个monorepo ,并将pegjs模块重新实现为主要位于@pegjs中的独立模块(在@peg中使用官方语法)。

下面是我目前计划实现的模块列表,但这可能会在 0.12 发布之前发生变化。

模块

  • @pegjs/lib用于 PEG.js 使用的 ECMAScript 最新功能的包装器
  • @pegjs/util跨 PEG.js 包共享的公共代码
  • @pegjs/harness一组模块来简化 PEG.js 和类似工具的测试
  • @pegjs/design函数和类库,以帮助构建 AST 和规范
  • @pegjs/config管理和可选地验证 PEG.js 使用的选项
  • @pegjs/language ast 类、操作码、基本代码编写器和错误类
  • @pegjs/parser PEG.js 语法解析器
  • @pegjs/bytecode使用 PEG.js 字节码的方法
  • @pegjs/runtime生成的解析器的运行时
  • @pegjs/linter可用于检查语法源或 ast 的各种 pass
  • @pegjs/javascript用于 PEG.js 编译器的 ES5/ES20x 代码生成器
  • @pegjs/compiler在生成解析器之前运行 linter 和更多通道
  • @pegjs/core主要的 api 库
  • @pegjs/cli https://en.wikipedia.org/wiki/Command-line_interface
  • @pegjs/repl https://en.wikipedia.org/wiki/Read –eval–print_loop
  • @pegjs/运行#522

接口

  • pegjs Node.js 的独立版本,指向最新的次要版本(例如0.12.x
  • @pegjs/browser 浏览器版本(当前是一个 bower 包)
  • @pegjs/x无插件、单通道、最少选项和仅速度变体(受 #348 启发)
  • @pegjs/e为语法和 API 添加实验性功能(供公众使用的测试平台)
feature task

最有用的评论

@StoneCypher保持你的马的伙伴😆 Yarn 只是 NPM 的替代品,因此下游用户可以拥有 NPM、Yarn 或许多其他弹出的,而不用担心工作空间,因为这是一个只会被使用的功能根package.json ( "private": true )在这个 repo 中,上面提到的所有子模块都将是 NPM 上发布的独立模块,它们分隔代码的不同部分,让我或任何开发和/或的人的生活更轻松破解 PEG.js 编译器。

此外,Rollup 和 Babel 都解决了彼此和 Yarn 不同的问题:

  • Yarn是一个支持工作空间的包管理器
  • Rollup是一个类似于 Browserify 的打包工具,只是它删除了死胡同代码
  • Babel是一个 ES2018+ 到 ES* 的转译器

所有6条评论

这是否意味着下游用户必须切换到纱线?

请不要将互联网的主要工具之一转移到由我们许多人不信任的公司管理的不同构建基础架构上的利基实验构建策略

纱线快死了,工作空间设计不佳

大多数节点用户不会为你切换到 yarn

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

如果您需要帮助,我很乐意帮助您构建一个正常的现代构建结构,不需要每个人都将工具切换到 Facebook 的东西

您可以使用 rollup 和 babel(或任何数量的其他设置)从中制作普通的 ES5,而无需任何开销。 不需要全新的基础设施。

在这个过程中,我可以添加一些其他非常重要的东西,比如 typescript 和 flowtype 支持、es6 模块支持和其他东西

@StoneCypher保持你的马的伙伴😆 Yarn 只是 NPM 的替代品,因此下游用户可以拥有 NPM、Yarn 或许多其他弹出的,而不用担心工作空间,因为这是一个只会被使用的功能根package.json ( "private": true )在这个 repo 中,上面提到的所有子模块都将是 NPM 上发布的独立模块,它们分隔代码的不同部分,让我或任何开发和/或的人的生活更轻松破解 PEG.js 编译器。

此外,Rollup 和 Babel 都解决了彼此和 Yarn 不同的问题:

  • Yarn是一个支持工作空间的包管理器
  • Rollup是一个类似于 Browserify 的打包工具,只是它删除了死胡同代码
  • Babel是一个 ES2018+ 到 ES* 的转译器

只要这不强迫我进入纱线

所以,你强迫我进入纱线。 您拒绝合并的其他人的几个 PR 试图将其撤回,因为yarn正在消亡,而且是一个在 Windows 上无法正常运行的低质量工具。

yarn没有价值。

yarn提供了一个很大的障碍——很多人不会安装一个新的包管理器来帮助你(我在崩溃之前拒绝了好几次),还有很多其他人因为工作政策而不允许这样做。

npm的行为发生了变化。 yarn没有跟上。 yarn的行为现在与社区的预期有很大不同。

monorepo 也没有提供价值,创建了一个复杂的额外构建步骤,违反了规范,并混淆了潜在的贡献者。

所有这些都比你没有做的功能工作要多得多。

我想你可能对我反对的性质感到困惑。

这是浪费的工作,使人们更难加入(这并不重要,因为从上个月开始,您实际上已经让任何人都无法为您现在所谓的“您的爱好项目”做出贡献,并期望被批量替换。)

这会减慢构建速度,并丢失npm具有而yarn没有的新工具。

Yarn 在 2018 年就要死了。现在是 2020 年。Yarn 现在基本上已经死了。

多年来,我的任何计算机上都没有安装它。 我不得不为你重新安装它。

请让这再次成为一个具有正常健康开发模式的正常项目,而不是使用边缘工具的私有代码库,尽管在 repo 中有非常重要的代码库修复,但这些工具三年没有发布。

是的,我看到您试图解释yarn的作用,但每个人都知道yarn的作用。

您创建的正是我两年前要求您不要创建的新基础架构,而您目前正在将其丢弃,原因正是我说它不起作用。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

emmenko picture emmenko  ·  15评论

futagoza picture futagoza  ·  13评论

brettz9 picture brettz9  ·  8评论

StoneCypher picture StoneCypher  ·  6评论

dmajda picture dmajda  ·  7评论