Size: a a a

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

2019 August 06

IL

Ilya Lopatin in Webpack — русскоговорящее сообщество
Всем привет. Нужна помощь. Делаю сборку на webpack. Хочу сделать папку с общими react компонентами для проектов, которая лежит за пределами root directory какого-либо проекта. В конфиге Webpack использую resolve alias. С обычным javascript все работает. Но компоненты с jsx не обрабатываются babel. Пожалуйста помогите найти решение, как лучше всего организовать общие react components между проектами. В интернете решения не нашел
источник

IP

Ivan Podgornov in Webpack — русскоговорящее сообщество
Ilya Lopatin
Всем привет. Нужна помощь. Делаю сборку на webpack. Хочу сделать папку с общими react компонентами для проектов, которая лежит за пределами root directory какого-либо проекта. В конфиге Webpack использую resolve alias. С обычным javascript все работает. Но компоненты с jsx не обрабатываются babel. Пожалуйста помогите найти решение, как лучше всего организовать общие react components между проектами. В интернете решения не нашел
А .jsx есть в resolve.extensions? Если нет, нужно вот так примерно сделать:
resolve.extensions = ['.jsx', '.js', '.mjs', '.json'];
источник

IL

Ilya Lopatin in Webpack — русскоговорящее сообщество
Ivan Podgornov
А .jsx есть в resolve.extensions? Если нет, нужно вот так примерно сделать:
resolve.extensions = ['.jsx', '.js', '.mjs', '.json'];
.jsx есть в resolve.extensions. Помогло вынести настройки для babel из файла .babelrc в options babel-loader в Webpack config.
Есть еще вопрос. За пределами рутовой папки, я использую import React from 'react'; Чтобы импорт заработал мне пришлось установить node_modules  во внешней папке.  А есть ли более изящное решение. взять module react из Node_modules самого проекта??
источник

FB

Furrya Black in Webpack — русскоговорящее сообщество
Ilya Lopatin
.jsx есть в resolve.extensions. Помогло вынести настройки для babel из файла .babelrc в options babel-loader в Webpack config.
Есть еще вопрос. За пределами рутовой папки, я использую import React from 'react'; Чтобы импорт заработал мне пришлось установить node_modules  во внешней папке.  А есть ли более изящное решение. взять module react из Node_modules самого проекта??
Нужно из папки с компонентами сделать репо с компонентами и инклудить в проект как депенденси, npm yarn могут ставить депс с репы/с приватной репы
источник

IL

Ilya Lopatin in Webpack — русскоговорящее сообщество
Furrya Black
Нужно из папки с компонентами сделать репо с компонентами и инклудить в проект как депенденси, npm yarn могут ставить депс с репы/с приватной репы
Спасибо. Попробую)
источник

GZ

Grigory Zaripov in Webpack — русскоговорящее сообщество
Привет, у меня есть энтрипоинт в котором несколько js чанков, но заимпортить я могу только 1 жсник, мне нужно что-то на подобии HtmlWebpackPlugin только чтобы не в хтмл вставлял, а в JS файл.
Никто не знает плагина который способен на такое?
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Grigory Zaripov
Привет, у меня есть энтрипоинт в котором несколько js чанков, но заимпортить я могу только 1 жсник, мне нужно что-то на подобии HtmlWebpackPlugin только чтобы не в хтмл вставлял, а в JS файл.
Никто не знает плагина который способен на такое?
Отключите чанки
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Будет один файл
источник

GZ

Grigory Zaripov in Webpack — русскоговорящее сообщество
Alex CherryTea
Отключите чанки
Это исходное состояние)
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Я не совсем понимаю что вы хотите в js файл вставить
источник

GZ

Grigory Zaripov in Webpack — русскоговорящее сообщество
Alex CherryTea
Я не совсем понимаю что вы хотите в js файл вставить
Мб мы подключим первый чанк, а плагин его пропатчит таким образом, что он пойдет и скачает файлы которые нужны для его загрузки ( сейчас он их кладет в deferredChunks, видит что они незаимпорчены и скипает реквайр стартового чанка), только тогда их придется эвалить, что весь профит от  этого костыля сведет на нет.
Буду думать как по-нормальному сделать, спасибо.
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
посмотрите диначеские иморты в доке вебпака, возможно это то что вы ищите
источник

GZ

Grigory Zaripov in Webpack — русскоговорящее сообщество
Grigory Zaripov
Мб мы подключим первый чанк, а плагин его пропатчит таким образом, что он пойдет и скачает файлы которые нужны для его загрузки ( сейчас он их кладет в deferredChunks, видит что они незаимпорчены и скипает реквайр стартового чанка), только тогда их придется эвалить, что весь профит от  этого костыля сведет на нет.
Буду думать как по-нормальному сделать, спасибо.
Мне коллега подсказал, что можно просто аппендить в дом эти скрипты в entry-js файле
источник

FB

Furrya Black in Webpack — русскоговорящее сообщество
Я понял (вроде) что нужен
import smth from ...
И чтобы этот импорт лежал отдельно после билда в своем чанке, динамические импорты да)
источник

FB

Furrya Black in Webpack — русскоговорящее сообщество
Grigory Zaripov
Мне коллега подсказал, что можно просто аппендить в дом эти скрипты в entry-js файле
А можно отдать на откуп вебпаку и он сам все сделает в том порядке когда надо и где надо
источник

GZ

Grigory Zaripov in Webpack — русскоговорящее сообщество
Furrya Black
Я понял (вроде) что нужен
import smth from ...
И чтобы этот импорт лежал отдельно после билда в своем чанке, динамические импорты да)
Не, динамичские тут не подходят, просто там чанки энтрипоинта должны смешаться с остальными чанками приложения, если сделать динамический импорт, то он отдельно импортируемую либу положит в чанк. А нужно чтобы у меня было 2, максимум 3 чанка и мне не нужно было в коде приложения думать о динамических импортах
источник

GZ

Grigory Zaripov in Webpack — русскоговорящее сообщество
Furrya Black
А можно отдать на откуп вебпаку и он сам все сделает в том порядке когда надо и где надо
Сейчас так и работает, просто он выдает 3 жсника на энтрипоинт, мне нужно их подключить с помощью другого жсника.
источник

GZ

Grigory Zaripov in Webpack — русскоговорящее сообщество
хтмл не могу использовать из-за ограничений среды
источник

FB

Furrya Black in Webpack — русскоговорящее сообщество
То есть билдите несколько ентрипоинтов и в последнем импортите предыдущие?
источник

GZ

Grigory Zaripov in Webpack — русскоговорящее сообщество
Furrya Black
То есть билдите несколько ентрипоинтов и в последнем импортите предыдущие?
Не, энтрипоинт останется один, просто добавится еще один ассет через который можно скачать все чанки для конкретного энтрипоинта, который задается в плагине

Как-то так
new JsWebpackPlugin({
   entrypoint:  ‘keyboard’
   output: ‘keyboard-bootstap.js’
});
источник