@react_js

Страница 1130 из 5115
Denis
26.03.2017
23:22:19
@DenisIzmaylov почему PreJSS и PostJSS это два разных проекта? ? кажется одни и те же проблемы решают, ну prejss чуть больше
Уже по сути один :) В какой-то момент у нас на секунду было разное видение, но позже мыс Артуром на PreJSS сфокусировались. Он написал крутую штуку https://github.com/lttb/prejss-styles-loader для того, чтобы реализовать основную идею - подключение CSS-файлов в виде CSS-in-JS, используя PreJSS. На самом деле PreJSS - это платформа плюс экосистема. Ядро состоит из трёх элементров - PreJSS Styles Declaration, парсер CSS (по умолчанию PostCSS) и адаптер (по умолчанию CSS в JSS). Декларация стилей PreJSS - это как раз тот самый способ задавать стили через Literal Template Strings. Задача парсера - быстро распарсить блок CSS в JSS-объект. Задача PreJSS-адаптера - позволить сделать: 1. Препроцессинг CSS для любых, необходимых проекту, кастомизацияй - например, можно, на этом уровне применить конфигурацию приложения или обработать свой кастомный синтаксис. 2. Парсинг CSS в JSS, используя встроенные или любой кастомный парсер (их ведь на самом деле много). 3. Обработать полученные JSS для дальнейшего использования в любой JSS-библиотеки. Поэтому появились такие инструменты, которые используя PreJSS могут делать любую трансформацию любого CSS в любой CSS-in-JS: + prejss-loader для загрузки CSS стилей через webpack + prejss-cli для конвертации CSS-файлов в JS с JSS-объектами + babel-plugin-transform-prejss для трансформации сборки PreJSS-сигнатур в CSS-in-JS

суть в том, что мне хотелось бы знать, что какой-то StyledComponent предоставляет мне возможность изменять свойство color у кнопки primary, когда она hovered и не хочется при этом, создавая этот компонент, тратить много времени на это ну и кажется, что это возможно)
Вот это была бы очень позелная фича! Другой момент, что это сильно зависит от хост-системы рендеринга (конкретный браузер - например, с поддержкой или без поддержки Flex, React Native iOS, React Native Android, React Native Desktop, etc). Но опеделённо в эту сторону стоит поразвиваться - как правильно сделать систему инспекции стилей.

hlomzik
26.03.2017
23:38:45
случайно в дискуссии (https://github.com/facebookincubator/create-react-app/issues/90#issuecomment-234637675) наткнулся на слова Абрамова ... we might want to migrate away from webpack in the future

@DenisIzmaylov я хочу погрузиться в PreJSS, но при первом взгляде мне не понравился boilerplate, много дефолт-кода, нельзя просто взять и подключить как те же styled, например

Google
hlomzik
26.03.2017
23:42:48
о, крутой коммент в той же дискуссии в сторону Абрамова! I regret bringing this to your attention.

Denis
26.03.2017
23:45:08
@DenisIzmaylov я хочу погрузиться в PreJSS, но при первом взгляде мне не понравился boilerplate, много дефолт-кода, нельзя просто взять и подключить как те же styled, например
Да на самом деле даже меньше, чем в styled, его вообще минимум: import preJSS from 'prejss' const mySexyStyles = preJSS` .sexy-button { color: super-sexy; } `; That's all. Ты в клубе. :)

Denis
26.03.2017
23:46:02
А дальше классический JSS API в зависимости от выбранной библиотеки :) Пока самая крутая - jss

Но если это React Native, то даже библиотека не нужна

hlomzik
26.03.2017
23:50:42
возможно, вы имели в виду *прейсс*

Ну я вот не использовал jss, только css-modules, они очень меня устраивали, потому что это чистый сильный css, в котором и @media, и все тебе привычное. Хотел сразу на PreJSS прийти) а там загрузка, подключение, использование, вставка.

..

Artur
26.03.2017
23:58:51
Ну я вот не использовал jss, только css-modules, они очень меня устраивали, потому что это чистый сильный css, в котором и @media, и все тебе привычное. Хотел сразу на PreJSS прийти) а там загрузка, подключение, использование, вставка.
с css-modules самый-самый простой переход - это заменить styles-лоадеры на prejss-styles-loader, а компоненты обернуть в injectSheet из react-jss. и в пропсах ты получишь те же classes, что были при css-modules, грубо говоря как-то так: было: import styles from './styles.css' const Comp = () => <div className={styles.app} /> export default Comp __ стало: import injectSheet from 'react-jss' import styles from './styles.css' const Comp = ({ classes }) => <div className={classes.app} /> export default injectSheet(styles)(Comp)

Denis
27.03.2017
00:00:11
Тут единственная проблема - сервер. У нас все приложения изоморфные с полной поддержкой SSR. Мало кто так делает, конечно, но для тех, кто делает - этот подход будет не совсем правильным, посольку нода не умеет работать с CSS семантически. Это можно хакать через require-hook или babel-runtime, но правильней будет сконвертить стили в JS. Для этого мы сделали: + https://github.com/axept/prejss-cli

Google
Denis
27.03.2017
00:03:37
Блин, надо уже обновить доки :)

hlomzik
27.03.2017
00:03:40
что именно делает injectSheet? какое свойство он добавляет?

hlomzik
27.03.2017
00:03:56
и как это работает с остальными пропсами?

Artur
27.03.2017
00:04:13
он рендерит стили при маунте компонента, гарантируя таким образом рендер только критикал цсс

hlomzik
27.03.2017
00:04:30
https://github.com/cssinjs/react-jss
спасибо! там дока правильнее

Pavel
27.03.2017
00:05:08
хороший у вас репозиторий Денис

но вот от этой картинки мне стало плохо



я уже не успеваю учить все иконки)

Dream
27.03.2017
00:09:09
техно. зоопарк и инжиниринг ради инжиниринга добро пожаловать в невероятный мир современного фронтенда)

Artur
27.03.2017
00:10:09
благодаря этому инжиринигу мы можем создавать продукты в несколько раз быстрее, чем до него

Dream
27.03.2017
00:11:03
я собстенно не против пока не попрбую критиковать права не имею)

Artur
27.03.2017
00:11:43
ну я не про непосредственно jss, а современный фронтенд)

Dream
27.03.2017
00:11:54
аа, ок)

Artur
27.03.2017
00:12:43
но jss в том числе содействует, ибо стилизация становится еще проще)

Dream
27.03.2017
00:13:08
ну субъективно я бы не сказал

я привык к post css в нем как-то все вкусно и привычно

Artur
27.03.2017
00:14:49
я привык к post css в нем как-то все вкусно и привычно
для такого и делался prejss)) все тот же postcss, и можно вообще ничего не менять в воркфлоу, но при этом под капотом бенефиты jss)

Denis
27.03.2017
00:17:23
но вот от этой картинки мне стало плохо
Боль от воспоминаний всех этих LESS, Bootstrap или что можно улучшить? :)

Google
hlomzik
27.03.2017
00:18:03
привеееет Failed to compile. Error in ./~/prejss/lib/index.js Module not found: 'prejss-postcss-parser' in ***/node_modules/prejss/lib @ ./~/prejss/lib/index.js 16:27-59

Denis
27.03.2017
00:18:41
)))

Это при npm install?

hlomzik
27.03.2017
00:19:11
модуль, конечно же, есть

yarn

это в CRA, установил сначала react-jss, потом решил и prejss наконец вставить. инсталл, старт — и вот

Denis
27.03.2017
00:20:07
Блин, мы кажется с Yarn не тестили :)

Artur
27.03.2017
00:20:43
нужно сделать фоллбэк на postjss)))

что-нибудь да сработает

Denis
27.03.2017
00:22:35
Разве у Yarn есть какая-то особенность при установке зависимостей для пакетов?

https://github.com/axept/prejss/blob/master/package.json#L45

Он вот такие не умеет зависимости ставить?

hlomzik
27.03.2017
00:23:39
Разве у Yarn есть какая-то особенность при установке зависимостей для пакетов?
сейчас жду, пока npm закончит свою доооолгую работу. у yarn вроде бы есть проблемы с кастомными пакетами типа прямых линков

Denis
27.03.2017
00:23:53
Да, оно

Сейчас подправлю тогда

hlomzik
27.03.2017
00:24:01
люди, которые живут на npm, скажите мне, пожалуйста, КАК ВЫ ТЕРПИТЕ??

Artur
27.03.2017
00:24:14
Он вот такие не умеет зависимости ставить?
у меня норм ставит, у вас просто в репозитории lib нет

hlomzik
27.03.2017
00:24:36
Google
Alexander
27.03.2017
00:24:55
я не курю
Идешь пить

Vladimir
27.03.2017
00:24:57
я не курю
хорошая причина начать

Идешь пить
нe, это ужe можeт закончиться нe так радужно

а выглядит как "да"

Admin
ERROR: S client not available

hlomzik
27.03.2017
00:26:28
блин. 10 минут ждать. результат тот же. @DenisIzmaylov

Artur
27.03.2017
00:27:39
блин. 10 минут ждать. результат тот же. @DenisIzmaylov
скачай этот пакет из нпм) с пакетом из репо проблема в том, что в репо нет lib

hlomzik
27.03.2017
00:27:54
$ ls node_modules/prejss-postcss-parser/ CHANGELOG.md LICENSE README.md package.json

очень смешно

hlomzik
27.03.2017
00:28:20
fixed! :)
и правда! спасибо)

Denis
27.03.2017
00:31:13
hlomzik
27.03.2017
00:31:38
Глюк при билде от Yarn :)
так я потом npm'ом прошелся с нуля

Artur
27.03.2017
00:32:12
Глюк при билде от Yarn :)
там была проблема не с ярн, а с тем, что выкачивался пакет из репозитория, в котором lib нет)

Denis
27.03.2017
00:34:15
Проблема в конфиге travis - https://travis-ci.org/axept/prejss-postcss-parser

hlomzik
27.03.2017
00:34:23
Failed to compile. Error in ./~/deasync/test.js Module not found: 'child_process' in ***/node_modules/deasync @ ./~/deasync/test.js 2:9-33 Error in ./~/require-from-string/index.js Module not found: 'module' in ***/node_modules/require-from-string @ ./~/require-from-string/index.js 3:13-30

Denis
27.03.2017
00:36:06
Проблема в конфиге travis - https://travis-ci.org/axept/prejss-postcss-parser
Fixed :) Новая сборка пошла ttps://travis-ci.org/axept/prejss-postcss-parser

hlomzik
27.03.2017
00:37:52
node 7.4.0 почему вообще test.js где-то в сборке используется... и почему не находит child_process... а про module вообще дикость

Denis
27.03.2017
00:39:32
$ ls node_modules/prejss-postcss-parser/ CHANGELOG.md LICENSE README.md package.json
fixed: $ ls node_modules/prejss-postcss-parser CHANGELOG.md LICENSE README.md lib package.json

Google
hlomzik
27.03.2017
00:41:15
Там есть штука для "выпрямления" на сервере асинхронного PostCSS - deasync
я так понимаю, проблема может быть в ноде, сейчас обновлюсь. но 7.4.0 — ни разу не старая версия) попробуйте на ней проверить

Denis
27.03.2017
00:42:24
Не лакшери, конечно, но для большинства случаев работает. Для того, чтобы всё было совсем красиво - https://github.com/axept/prejss#performance-matters



hlomzik
27.03.2017
01:33:33
ЧТО ЗА НОЧЬ??? сломался eslint со standard'ом

Denis
27.03.2017
01:38:27
Его мы не трогали :)

hlomzik
27.03.2017
01:46:51
там было что-то странное с версиями и с ярном

Denis
27.03.2017
01:47:07
Так, вроде всё пофиксил по PreJSS? :)

Или что-то ещё осталось?

Дмитрий
27.03.2017
01:57:59
Или что-то ещё осталось?
Я тут тоже ради любопытства поставил)

Denis
27.03.2017
01:59:32
Увидел ошибку. Это было на странице basic example?

Дмитрий
27.03.2017
02:00:12
Не, я в пет проект ставил

Удалил, потому что увиде, что и так обсуждали это выше)

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