发布自定义元素、命名约定、最佳实践?
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
我即将制作自定义元素 <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