Публикация пользовательских элементов, соглашения об именах, лучшие практики? - PullRequest
1 голос
/ 10 апреля 2019

Я собираюсь сделать мой пользовательский элемент <card-t> общедоступным

предварительный релиз по адресу: https://github.com/card-ts/playingcardts

Предложения и улучшения высоко ценятся!

Пара вопросов:

Именование пользовательских элементов

Есть: https://www.webcomponents.org/community/articles/how-should-i-name-my-element
но это не проходит "должен включать дефис"

Я пошел с element.card-t.js для сортировки.

Другие лучшие практики ??

Обертывание в модулях IIFE и ES?

Пользовательские элементы создаются в глобальном пространстве имен и не возвращают ничего, как библиотека.

Упаковка в IIFE должна быть достаточной?

Есть ли смысл загружать его как модуль?

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

Расширение пользовательских элементов

Должны ли мы по умолчанию возвращать определение класса, чтобы расширение было проще?

1 Ответ

1 голос
/ 10 апреля 2019

Так как это вопрос мнения, вот мои мнения:

Именование пользовательских элементов

Я всегда называю свой JS-файл на основе имени моего класса, а мое имя класса - это просто имя тега, но с заглавной буквы Таким образом, мой тег <my-thing> будет иметь имя класса MyThing, а мое имя файла будет components/MyThing.js

Обертывание в модулях IIFE и ES?

Я создаю весь свой код в ES6 +, а затем создаю дополнительную версию ES5 CommonJS и версию ES5 IIFE и позволяю людям загружать то, что они хотят.

Я использую rollup и мои component-build-tools для создания моих различных версий. component-build-tools component-build-tools также объединяет все зависимости компонента в выходной файл. Это может привести к некоторой репликации, но в большинстве случаев она достаточно мала, я не против.

Мои компоненты заканчивают своими шаблонами и строками локали, встроенными в опубликованные файлы. Это особенность component-build-tools .

Расширение пользовательских элементов

Как правило, я раскрываю имя класса во всех трех форматах моих файлов. Это помогает расширить мои компоненты, но я сомневаюсь, что многие люди когда-нибудь захотят это сделать.

Где разместить файлы.

Самое сложное - разместить файлы так, чтобы они были легко доступны с веб-страницы.

У меня есть шаг сборки, который копирует мои файлы из папки node_modules в папку dist. Мне было проще всего точно знать, где находятся мои файлы.

Выполнение этого позволяет мне npm install что-нибудь, а затем по-прежнему получать их файлы в место, которое я знаю и могу использовать. Но это также привело к тому, что я не очень беспокоюсь о том, где мои файлы окажутся в моем репо.

У меня обычно есть папка dist, и там у меня есть:

dist
 +- js
     +- components
         +- MyThing.js
         +- MyThing.min.js
         +- AnotherThing.js
         +- AnotherThing.min.js
         +- SoOn.js
         +- SoOn.min.js
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...