Так как это вопрос мнения, вот мои мнения:
Именование пользовательских элементов
Я всегда называю свой 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