发布自定义元素、命名约定、最佳实践?

Publishing Custom Elements, naming conventions, best practices?

我即将制作自定义元素 <card-t> public

预发布时间:https://github.com/card-ts/playingcardts

非常感谢您的建议和改进!

几个问题:

命名自定义元素

有:https://www.webcomponents.org/community/articles/how-should-i-name-my-element
但它没有超过 "must include a hyphen"

为了排序,我选择了 element.card-t.js

其他最佳做法 ??

包装在 IIFE 和 ES 模块中?

自定义元素是在全局命名空间中创建的,return不像库那样。

在 IIFE 中包装就足够了吗?

将其作为模块加载是否有价值?

<script type="module" src="element.card-t.js">

扩展自定义元素

我们是否应该默认 return class 定义以便扩展更容易?

因为这是一个意见问题,所以这些是我的意见:

命名自定义元素

我总是根据我的 class 名称命名我的 JS 文件,而我的 class 名称只是标签名称但大写。所以我的标签 <my-thing> 会有一个 class 名称 MyThing 而我的文件名将是 components/MyThing.js

包装在 IIFE 和 ES 模块中?

我在 ES6+ 中创建了我所有的代码,然后我创建了一个额外的 ES5 CommonJS 版本和一个 ES5 IIFE 版本,让人们加载他们想要的东西。

我使用 rollup 和我的 component-build-tools 来创建我的各种版本。 component-build-tools component-build-tools 还将组件的所有依赖项组合到输出文件中。这可能会导致一些复制,但大多数时候它足够小我不介意。

我的组件最终将其模板和语言环境字符串嵌入到发布的文件中。这是 component-build-tools 的一个特性。

扩展自定义元素

作为一般规则,我在所有三种格式的文件中公开 class 名称。这确实有助于扩展我的组件,但我怀疑很多人会愿意这样做。

放置文件的位置。

最难的是将文件放在哪里,以便网页可以轻松访问它们。

我有一个构建步骤,可以将我的文件从 node_modules 文件夹复制到 dist 文件夹中。这是我最容易知道我的文件所在位置的最简单方法。

这样做可以让我 npm install 任何东西,然后仍然可以将他们的文件放到我知道并可以使用的位置。但这也让我不太担心我的文件在我的存储库中的最终位置。

我确实有一个 dist 文件夹,里面有:

dist
 +- js
     +- components
         +- MyThing.js
         +- MyThing.min.js
         +- AnotherThing.js
         +- AnotherThing.min.js
         +- SoOn.js
         +- SoOn.min.js