小编典典

bower init - amd、es6、globals 和 node 之间的区别

all

我正在创建我的第一个 Bower 组件。运行bower init脚本后问我“这个包暴露了哪些类型的模块?” 使用这些选项:

  • AMD
  • es6
  • 全局变量
  • 节点

这些选项有什么区别?


阅读 64

收藏
2022-04-25

共1个答案

小编典典

如果您不知道,那么 globals 很可能是您的正确答案。

无论哪种方式,您都需要了解:

[更新]

此功能是最近在 bower 中引入的,并且根本没有记录(AFAIK)。它本质上描述了moduleType,它说明了该包打算使用的模块技术(见上文)。

现在,除了在包的文件中设置moduleType属性之外,它没有任何作用。bower.json

有关原始拉取请求,请参阅https://github.com/bower/bower/pull/934

[更新#2]

补充几点,回答评论:

  • 目前 AFAIK 没有对该moduleType房产进行验证 - 这意味着从技术上讲,人们可以使用他们想要的任何价值,包括angularjs他们是否愿意这样做
  • 鲍尔委员会似乎并不热衷于包含额外的(non-interoperable/proprietary moduleTypes想想作曲家、角度等)——这很容易理解,但再一次,没有什么能真正阻止人们使用moduleType他们想要的价值
  • yui moduleType前一个例外是(有点)最近包含

如果我要为未列出的包管理器编写包并将其发布到 bower,我会怎么做?

我会编写一个 es6 模块,并使用 /patch
es6-transpiler来输出我需要的包格式。然后我会/和:

  • 请求凉亭人将我的包技术作为选择(基于它被 es6-transpiler 支持作为目标的事实)
  • 发布我的包,包括它的 es6 模块版本和它的转译 XXX 版本,并es6用作moduleType

免责声明:我没有编写 angularjs 模块的实际经验。

2022-04-25