Size: a a a

Webpack — русскоговорящее сообщество

2021 May 13

OP

Oleg P in Webpack — русскоговорящее сообщество
т-е вариантов нет никаких объединить js + css в один js?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
то что вы пытаетесь сделать называется css-in-js, причем современные хорошие реализации css-in-js все равно генерируют css + js на выходе
источник

OP

Oleg P in Webpack — русскоговорящее сообщество
куда копать? что посмотреть ?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Засунуть css внутрь js возможно.
Стоит ли это делать - определенно нет
делается ли это указанием в качестве энтри js файла - совершенно точно нет )
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
куда копать что смотреть зависит от вашего спецефического кейса.
Варианты от заюзать реакт и либы позволяющие писать стили прямо в jsx до написать свой велосипед который будет вставлять style тэг после загрузки js (оба варианта полная хрень с точки зрения времени старта приложения)
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
расскажите зачем вам один файл я подскажу как лучше сделать
источник

OP

Oleg P in Webpack — русскоговорящее сообщество
я собрал некий web component. Хочу его без лишних заморочек использовать на других веб страница. Просто добавляя как widget.js - без необходимости испортирования стилей и тд. Шрифтов. Чтобы был только один файл
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
ага, ну тут все просто решается, вам нужно загрузить с помощью raw loader содержимое файла стилей прямо в <style> тэг находящегося внутри shadow dom рута вашего комонента
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
я сейчас не у пк, но если вам не горит то через часик напишу вам пример такого веб компонента
источник

OP

Oleg P in Webpack — русскоговорящее сообщество
хорошо! буду очень признателен за пример! Спасибо
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Посмотрите вот здесь
https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM

Раздел styling shadow dom
источник

OP

Oleg P in Webpack — русскоговорящее сообщество
ок  - читаю
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Видите там style.textContent = а дальше css строкой
источник

OP

Oleg P in Webpack — русскоговорящее сообщество
да
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
В вебпаке есть такой raw-loader который позволит вам импортировать в js файл содержимое css файла в виде строки
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Получится так.
import styles from "./style.css"

...

style.textContent = styles
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Бонус - благодаря изоляции стилей в вебкомпоненте (тот самый shadow dom) страница куда вы вставляете компонент никогда не сможет случайно испортить стили при совпадении названний классов в приложении и компоненте
источник

OP

Oleg P in Webpack — русскоговорящее сообщество
Спасибо - смотрю raw-loader
источник

OP

Oleg P in Webpack — русскоговорящее сообщество
т-е  мне сначала нужно собрать все стили в один файл - потом прогнать его через raw-loader ?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Если они не взаимосвязаны то просто импортируйте их всех и объедините как строки обычной конкатенацией (+)
источник