先决条件
- 我拥有 searched 用于重复或关闭的功能请求
- 我已阅读了 contributing guidelines
建议
// resulting bootstrap.bundle.js from index.umd.js
const index_umd = {
Alert,
Button,
Carousel,
Collapse,
Dropdown,
Modal,
Offcanvas,
Popover,
ScrollSpy,
Tab,
Toast,
Tooltip,
// extra
BaseComponent,
util: {
defineJQueryPlugin,
execute,
executeAfterTransition,
findShadowRoot,
getElement,
getElementFromSelector,
getjQuery,
getNextActiveElement,
getSelectorFromElement,
getTransitionDurationFromElement,
getUID,
isDisabled,
isElement,
isRTL,
isVisible,
noop,
onDOMContentLoaded,
reflow,
triggerTransitionEnd,
toType
},
dom: {
EventHandler,
SelectorEngine,
Manipulator,
Data,
},
};
动机和背景
如果我们正在编写一个独立的/未捆绑的引导插件,额外导出的帮助程序(已在完整捆绑的核心中导入/使用)将有助于以“引导方式”编写插件本身,而无需重新导入( util/index.js
, dom/event-handler.js
等 ...)并因此不必要地增加插件文件大小。
我将保留一个小写版本 globalThis.bootstrap.util
, globalThis.bootstrap.dom
来区分实用程序/ DOM 帮助程序和组件。
敬上
4条答案
按热度按时间ntjbwcob1#
我希望为社区提供一些关于如何构建“Bootstrappy”的标准化文档。我认为我们可以尽一切努力使人们更容易与我们合作。
x33g5p2x2#
你好,@mdo,一个bs组件开发文档会是一个很好的事情,但我认为它需要花费很多时间,尤其是要跟上新版本。对于普通开发者来说,bs代码本身就很易于理解,它本身就是一种文档。我认为最紧急的事情是即使在不使用bundler的情况下也要有bs内部工具可用。我发现自己几次重写bs实用函数/对象的草稿版本,只是为了避免重新导入整个模块。
附注:将bs组件的内部常量作为只读静态属性提供,就像
NAME
那样,会不会很有用呢?此致
敬礼
x8goxv8g3#
在 #33542 中再次讨论了这个问题。我不确定是否可以提供所有 Bootstrap 内部内容,因为我们需要添加文档,维护工作可能会变成噩梦(内部更改,重构)。也许我们可以将
BaseComponent
导出以便为扩展提供机会,但这样我们还需要导出EventHandler
、SelectorEngine
和可能的Manipulator
。我不觉得这样做是对的(至少在 v6 之前)当然,我不认为将 BS 工具(index.js)导出是一个好主意,因为它们是根据我们的需求指定的,而且从 v4 到 v5 的过渡还没有达到一个良好的状态
@julien-deramond@louismaximepiton 你有什么看法?
bjg7j2ky4#
你好,
自从我们对这个问题的改变不完全了解,以及我们还没有在这个主题上做很多工作以来,我们一直在努力解决这个问题。
我们都同意,看到这个API的稳定版本会很好,因为它可以帮助人们构建基于Bootstrap的组件。但这意味着API需要增加很多工作:
关于需要导出的内容,基于Boosted自定义组件,我们假设每个Js组件至少需要
BaseComponent
、EventHandler
和SelectorEngine
。我个人还没有使用过Manipulator
,所以我对此了解不多。此外,如果GeoSot认为我们应该将一些文件保留为私有给Bootstrap,因为它们还没有准备好,我认为在准备好之前应该保持私有。