@react_js

Страница 382 из 5115
anoru
11.08.2016
16:19:14
@wapgear https://github.com/css-modules/css-modules-require-hook

Вот простой пример

const hook = require('css-modules-require-hook'); hook({ generateScopedName: process.env.NODE_ENV === 'production' ? '[hash:base64:5]' : '[name]__[local]___[hash:base64:5]', });

Работает на серверном рендеринге и тестах

Google
anoru
11.08.2016
16:20:04
import { shallow } from 'enzyme'; import Loading from './'; describe('Loading component', () => { const element = shallow(<Loading />); it('render', () => { expect(element.find('div')).to.have.length(1); }); });

то есть можно спокойно писать тесты

В hook({ просто должно совпадать тоже самое, что у тебя в вебпакконфиге

поэтому там проверка на продакшен или нет

Cocker
11.08.2016
16:20:46
Народ, вот такой вопрос. У нас есть кодер, который делает html+CSS по макету, и есть js программист, который это все потом натягивает на реакт, коннектит с бекендом и так далее. Это вообще нормально, или это должен делать один человек? И второй вопрос - если так продолжать, то как бы сделать полегче синхронизацию html, который сверстал первый, с jsx в компонентах, в случае изменений? Щаз первый кричит, что он что-то поменял, второй открывает html файлы и переносит изменения руками в свои компоненты.

anoru
11.08.2016
16:20:49
т.к. конфиги тоже разные могут быть, как у меня

hlomzik
11.08.2016
16:21:17
anoru
11.08.2016
16:21:36
для дева длинный класс, чтобы проще было понять какой это компонент

для продакшена обычный хеш

anoru
11.08.2016
16:21:44
ну, это вкусовщина

[name]__[local]___[hash:base64:5]', Типа тут не только хеш, а еще и имя.

Если же для дева и прода одно юзается, то тогда не нужны условия

Google
hlomzik
11.08.2016
16:22:42
ну да, у меня так и есть) понятно. я просто подумал, что это важный код

anoru
11.08.2016
16:22:58
это я просто скопипастил)

Anton
11.08.2016
16:23:10
И собственно сервер рендерит без них

Что посоветует?

Е

anoru
11.08.2016
16:23:42
extractTextPlugin

он собирает тебе bundle.css

@wapgear Посмотри вот этот простой проектик https://github.com/anorudes/redux-easy-boilerplate там много комментов и максимально упрощенный код

anoru
11.08.2016
16:29:58
>Это вообще нормально, или это должен делать один человек?

нет. Пускай верстает сразу с реактом и его окружением, этому научиться можно за несколкьо дней

Alex
11.08.2016
16:30:30
Верстальщик должен верстать сразу компонент

желательно с тестами

anoru
11.08.2016
16:30:45
реакт сам по себе элементарный

Cocker
11.08.2016
16:32:25
Спасибо. А он, то есть, часть работы фпрнтендера берет на

Себя?

Но я понял, надо их мерджить )

Alex
11.08.2016
16:34:50
Часть работы? да, верстку. Только он верстает сразу там где нужно.

А второй как я понимаю может уже логику прикрутить.

Если ваш верстальщик еще освоит https://github.com/kadirahq/react-storybook или подобное, то цены ему не будет.

Google
Alex
11.08.2016
16:35:34
А вообще лучше с тестами конечно, но это влажные мечты.

Cocker
11.08.2016
16:35:38
желательно с тестами
А можно простой пример, где можно тесты увидеть?

Alex
11.08.2016
16:36:20
https://semaphoreci.com/community/tutorials/testing-react-components-with-enzyme-and-mocha Ну как то так

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

От фейсбука вроде, ток найти не могу.

Cocker
11.08.2016
16:36:59
Спасибо

Alex
11.08.2016
16:37:23
Главное чтобы фронтендер заложил под это базу и обучил верстальщика.

Cocker
11.08.2016
16:37:39
Ага

Понятно, куда двигаться

Круто

Bogdan
11.08.2016
17:16:17
Может кто-то подсказать по relay, graphql - насколько я понимаю он позволяет вытаскивать вложенные связи только как свойства объекта а вот если нужно например получить плоский массив всех комментариев во всех постах во всех бордах конкретного пользователя?

hlomzik
11.08.2016
17:20:35
че-то не понятно. В чем проблема? если "my === props.className", то и будет нужный класс
ну вот есть логотип. внутри он как-то выглядит и сам это определяет. снаружи его надо позиционировать. он внутри .logo и снаружи .logo, но это разные css модули

внутрь передается className=“logo”, но он мапится на внутреннее именование модуля, что нам не нужно

но я уже понял, что сам же дурак, потому что снаружи должен приходить хэш, а он уже останется неизменным. просто для теста у меня снаружи не было модулей, вот и придумал проблему на пустом месте

from
11.08.2016
17:44:36
ну вот есть логотип. внутри он как-то выглядит и сам это определяет. снаружи его надо позиционировать. он внутри .logo и снаружи .logo, но это разные css модули
проблема в общем-то серьёзная достаточно https://medium.com/@taion/the-problem-with-css-in-js-circa-mid-2016-14060e69bf68#.vx7ui0kjp https://github.com/css-modules/css-modules/issues/147

Vladimir
11.08.2016
18:03:56
Может у кого-то завалялся готовый алгоритм решения? https://jsfiddle.net/frenzzy/8pou3j9f/

Evghenii
11.08.2016
18:45:39
всем добрый вечер, ребятки кто-то сталкивался с ресурсом где предлагают идеи для опен сорса?

Anton
11.08.2016
18:46:07
про экстракт и бандл цсски я знаю

Google
Anton
11.08.2016
18:46:09
вопрос не в этом

Просто при сервер рендере я получаю код по типу <div> <span>Blah</span> </div>

а должно рендерится <div className="block_dDtevxcD"> <span className="block_sub_Sdjlqg">Blah</span> </div>

anoru
11.08.2016
19:57:02
css modules hook как раз для этого

Телефон поправил слово. Вернул правильное)

Anton
11.08.2016
19:59:15
ага

спасибо

гляну

anoru
11.08.2016
20:02:08
@wapgear ты главное не самый первый пример в репе юзай

Admin
ERROR: S client not available

anoru
11.08.2016
20:02:19
он просто позволяет не упасть при импорте ксс модулей. Но у тебя классы не поставятся, т.к. будут пустые строки

Anton
11.08.2016
20:02:32
да надо этот хук рядом с бабель-регистер хуком припихнуть :D

anoru
11.08.2016
20:02:40
и получится как раз дивы без классов

Там далее идет норм пример

Anton
11.08.2016
20:02:56
а

окей

спасибо

anoru
11.08.2016
20:02:59
const hook = require('css-modules-require-hook'); hook({ generateScopedName: '[name]__[local]___[hash:base64:5]', });

а нет, он как раз первый

может изменили readme) давно смотрел

Google
Anton
11.08.2016
20:03:37
я помнится какой-то пример попробовал на последних нотах терпения

Он не сработал => я сгорел => код остался без классов

anoru
11.08.2016
20:04:07
ваще все эти хуки крутая тема

require('asset-require-hook')({ extensions: ['jpg', 'png'], });

я еще такое юзаю

чтобы не падало на require картинок)

Anton
11.08.2016
20:05:47
тоже попробую

ща хардкорю для бабеля

require.extention['css'] = () => return;

и так для всех расширений

Но чувствую что херня идея

anoru
11.08.2016
20:06:45
Можешь еще под конец добавить babel-plugin-webpack-alias, чтобы совсем идеально было) Это для вебпакалиасов. Три основные проблемы при серверном рендеринге - картинки, вебпакалиасы и стили)

require.extention['css'] = () => return;
да зачем, заюзай тот хук. он же простой

Anton
11.08.2016
20:07:28
да уже понял

завтра буду пробовать, опять заказчика обрадую

anoru
11.08.2016
20:07:35
И элементы с классами будут. если тупо игнорить импорт стилей, то тогда без классов будет

:)

Anton
11.08.2016
20:07:58
Бедолага

Купил себе курс какой-то по редаксу

чтобы сервер рендер запилить

А я с ним неделю не общался, сюрприз готовил

В итоге запушил ему сервер рендер, парень чуть от счастья не усцался

Страница 382 из 5115