@react_js

Страница 307 из 5115
Vladimir
16.07.2016
14:01:18
Но красивый

マイク
16.07.2016
14:05:16
Вам шашечки или ехать?

Denis
16.07.2016
14:28:40
:)))

anoru
16.07.2016
15:38:06
Ребят, вот несколько раз поднималась тема кто как билдит разные бандлы, когда несколько языков. Но вот интересует другой вопрос. Допустим у нас есть в проекте 2 языка en и ru, а также множество поддоменов. Например, бесконечное количество. И теперь надо как-то сделать, чтобы для каждого поддомена брались свои языки, стили и попадали в бандлы типа dist/домен_проекта/файлы Допустим файл стилей для домена B содержит в себе несколько переопределений осного стиля компонента И в бандл должен попасть header/styles.scss и header/styles_${domain}.scss Это нужно по той причине, что у разных поддоменов отличаются тексты и стили разных компонентов. Причем заранее создавать все файлы стилей для каждого проекта не хочется. Вебпак должен сам проверить есть ли такой файл в папке, загрузить его, потом при билде создать нужный бандл. Для стилей приходится писать какой-то адовый костыль типа require('./styles.scss'); const req = require.context('./', false, /.scss$/); if (req.keys().indexOf(`./styles_${__PROJECT__}.scss`) > -1) { req(`./styles_${__PROJECT__}.scss`); } где в __PROJECT__ домен текущего проекта. require.context тут нужен, чтобы определить присутствие файла в папке. Но при этом в билд продакшена он все равно залетит. Для того, чтобы избавиться от этого далее следует написать лоадеры для вебпака под scss. Первый для обычного styles.scss, второй для ${project_domain}_styles.scss и третий для всего остальнго (там все попадает в null-loader, чтобы в бандле отсутствовал контент) И теперь мы можем билдит разные проекты передавая в node env имя домена. Основная проблема начинается именно с языками, т.к. стили на серверном рендеринге не нужны, а вот языки еще как. Надо, чтобы json файлы языков грузились как через ноду обычную на серверном рендеринге, так и через вебпак в дев режиме + хотрелоад, так еще и попадать в разные билды. Вот эта задача выглядит реально хардкорной. С разбиением по языкам особо проблем нет, т.к., когда мы добавляем допустим новый язык на сайт, то создаем файлы языков для всех компонентов. Они точно отсутствовать не будут А вот в случае бандлов под разные поддомены - не везде требуются свои языки или стили для поддомена

Google
anoru
16.07.2016
15:44:36
const req = require.context('./', false, /.scss$/); if (req.keys().indexOf(`./styles_${__PROJECT__}.scss`) > -1) { req(`./styles_${__PROJECT__}.scss`); }

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

когда билдишь для прода - он все равно забирает все файлы в бандл

Не нашел способа, чтобы условием определить присутствие файла в папке и добавлять/не добавлять его в бандл по желанию. Чтобы работало как с хотрелоадом, так с продакшен билдом и еще нодой серверным рендренгом

очевидно я не могу определять по присутствую в папке типа через какой-нибудь fs

т.к. этот код также сработает и на клиенте

а можно как-нибудь написать лоадер в вебпаке, чтобы он не падал, если файл отсутствует?

И тупо писать require('test_' + variable + '.js). Если файл найдется - грузанется, если нет, то не упадет )

Владимир
16.07.2016
16:18:49
Если цсс то до цсс лоадера

anoru
16.07.2016
16:21:57
Это поможет проверить присутствие файла в папке и будет работать также и с вебаком? А можно пример?

Владимир
16.07.2016
16:54:55
Пробуешь прочитать файл, если читается делаешь че хочешь, если нет пустую заглушку возвращаешь

Примеры в гугле, смотри как стайл лоадер работает

Google
anoru
16.07.2016
16:56:09
Ну, примерно тоже самое и ищу, вот только с примерами

в стайллоадерe require, который упадет при импорте отсутствующего файла. А уже потом идет разбор контента. Или я что-то не понимаю?

https://github.com/webpack/style-loader/blob/master/index.js

Владимир
16.07.2016
16:57:40
Тебе нужна фаза питч

Которая лоадеры чекает слева на право

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

anoru
16.07.2016
16:59:08
Спасибо, погуглю в данном направление

Не помогло

Кстати, кто-нибудь юзал https://github.com/davezuko/react-reformed ?

хотя оно не так давно появилось для этого

Владимир
16.07.2016
18:25:08
Значит не правильно сделал

Ivan
16.07.2016
19:03:10
return state .transform() [isBold ? 'unmark' : 'mark']('bold') .apply() впервые увидел такой вот вызов метода в чейне

тут https://github.com/ianstormtaylor/slate/blob/master/docs/guides/applying-custom-formatting.md

Viacheslav
16.07.2016
19:07:26
имхо не красиво

Ivan
16.07.2016
19:08:07
разве во времена jquery операторы внутри [] работали?

разве это не модная es6 фича

а работали

Viacheslav
16.07.2016
19:09:28
нет, работали

Ivan
16.07.2016
19:09:36
путаю с { [blabla] : }

Google
Viacheslav
16.07.2016
19:09:39
в es6 сделали присовение

Ivan
16.07.2016
19:15:57
разве во времена jquery операторы внутри [] работали?
лучше продолжу бухать чем такой позор писать

anoru
16.07.2016
19:19:50
удивительно, что не встречал ни разу такое :D

lamo2k
16.07.2016
19:25:41
Ребят, вот несколько раз поднималась тема кто как билдит разные бандлы, когда несколько языков. Но вот интересует другой вопрос. Допустим у нас есть в проекте 2 языка en и ru, а также множество поддоменов. Например, бесконечное количество. И теперь надо как-то сделать, чтобы для каждого поддомена брались свои языки, стили и попадали в бандлы типа dist/домен_проекта/файлы Допустим файл стилей для домена B содержит в себе несколько переопределений осного стиля компонента И в бандл должен попасть header/styles.scss и header/styles_${domain}.scss Это нужно по той причине, что у разных поддоменов отличаются тексты и стили разных компонентов. Причем заранее создавать все файлы стилей для каждого проекта не хочется. Вебпак должен сам проверить есть ли такой файл в папке, загрузить его, потом при билде создать нужный бандл. Для стилей приходится писать какой-то адовый костыль типа require('./styles.scss'); const req = require.context('./', false, /.scss$/); if (req.keys().indexOf(`./styles_${__PROJECT__}.scss`) > -1) { req(`./styles_${__PROJECT__}.scss`); } где в __PROJECT__ домен текущего проекта. require.context тут нужен, чтобы определить присутствие файла в папке. Но при этом в билд продакшена он все равно залетит. Для того, чтобы избавиться от этого далее следует написать лоадеры для вебпака под scss. Первый для обычного styles.scss, второй для ${project_domain}_styles.scss и третий для всего остальнго (там все попадает в null-loader, чтобы в бандле отсутствовал контент) И теперь мы можем билдит разные проекты передавая в node env имя домена. Основная проблема начинается именно с языками, т.к. стили на серверном рендеринге не нужны, а вот языки еще как. Надо, чтобы json файлы языков грузились как через ноду обычную на серверном рендеринге, так и через вебпак в дев режиме + хотрелоад, так еще и попадать в разные билды. Вот эта задача выглядит реально хардкорной. С разбиением по языкам особо проблем нет, т.к., когда мы добавляем допустим новый язык на сайт, то создаем файлы языков для всех компонентов. Они точно отсутствовать не будут А вот в случае бандлов под разные поддомены - не везде требуются свои языки или стили для поддомена
Мы для этого написали плагин https://github.com/lamo2k123/theme-webpack-plugin ксожалению доки пока нет и работает с модулями. Думаю сами сможете подсебя код подогнать.

anoru
16.07.2016
19:27:42
ого, спасибо. Обязательно посмотрю

Aleh
16.07.2016
21:05:14
как-то здесь еще не перетерали https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html

Ave
16.07.2016
22:43:17
чем лучше https://github.com/gcanti/tcomb-form?

Dmitry
16.07.2016
23:00:33
Может кто-нибудь подсказать, как разруливаете кейсы, когда надо в mapDispatchToProps запустить экшен и после изменения стейта тут же еще один запустить? Хочется, чтобы код как-то вместе лежал

Не лезет ничего в голову

Alxander
16.07.2016
23:02:38
Ой, скобочку забыл.

Dmitry
16.07.2016
23:03:02
:0 удивительно, у меня ругался, что не промис) Может засыпал

ага, до сих пор и ругается Uncaught TypeError: dispatch(...).then is not a function

Alxander
16.07.2016
23:05:54
У тебя redux-thunk стоит? Может это его дело?

Dmitry
16.07.2016
23:07:10
Неа, у меня саги

Alxander
16.07.2016
23:57:32
Неа, у меня саги
Ну в этом и проблема, видимо.

Насколько понимаю dispatch возвращает результат экшнкриейтера, пропущенный через миддлевари.

[Anonymous]
17.07.2016
03:50:55
http://react-etc.net/entry/your-license-to-use-react-js-can-be-revoked-if-you-compete-with-facebook

Google
Ҫѐҏӗѫӑ
17.07.2016
04:45:23
новиночка

Lupsick
17.07.2016
09:53:23
https://github.com/webpack/webpack/tree/master/examples/i18n как это можно использовать? юзер грузит себе 2 жса?

Lupsick
17.07.2016
10:41:26
Там собирается на каждый язык бандл.
а юзеру как нужный подсовывать?

а если он язык меняет?

anoru
17.07.2016
10:43:21
релоад страницы

Lupsick
17.07.2016
10:46:20
релоад страницы
а подсовывать нужный жс на стороне сервера?

Admin
ERROR: S client not available

Denis
17.07.2016
11:13:01
Гайз, можно ли как-то заставить intellij раскрывать .myBeautyForm в <div styleName="myBeautyForm"></div> вместо <div className="myBeautyForm"></div> для jsx соответственно

и еще при раскрытии атрибута вместо "" ставить {}?

на последнее кому-то уже отвечали, правда не могу найти ответ

lamo2k
17.07.2016
11:26:21
а подсовывать нужный жс на стороне сервера?
На сервере или на клиенте хелпер который будет подгружать нужный бандл

Lupsick
17.07.2016
11:27:21
еще я читаю что у него нет pluralization

это так?

lamo2k
17.07.2016
11:28:33
чет тупо звучит
Вообще идея так i18n реализовывать тупа.

Lupsick
17.07.2016
11:28:51
я смотрю на i18next

lamo2k
17.07.2016
11:31:24
а ты что-нибудь юзал?
Нет. У нас в редисе секции с переводами лежат и по необходимости по сокету доставляемых нужную секцию

А если без хранилища то можно в отдельных json хранить и забирать нужный язык. После смены языка вызвать forceUpdate на root компоненте

Google
lamo2k
17.07.2016
11:44:07
Для нас это то что надо, мы в Реал тайме можем править переводы и добавлять языки. Без релиза.

Lupsick
17.07.2016
11:45:18
и зачем править переводы в реалтайме?

держать сокет это дорого

lamo2k
17.07.2016
12:00:52
У нас вся апликуха по ws работает )

и зачем править переводы в реалтайме?
Исправить перевод можно без релиза.

Lupsick
17.07.2016
12:05:12
Исправить перевод можно без релиза.
без релиза можно и по урлу грузить json

マイク
17.07.2016
12:14:30
Lupsick
17.07.2016
12:14:44
Откуда инфа?
от пацанов

マイク
17.07.2016
12:14:53
Не оч пацаны

Lupsick
17.07.2016
12:15:22
в моем понимании держать тсп коннект постоянно с приложением дорого

оно должно быть выгружено в оперативку

マイク
17.07.2016
12:16:27
Э, кто должен быть выгружен?

Lupsick
17.07.2016
12:16:42
Э, кто должен быть выгружен?
серверное сокет-приложение

マイク
17.07.2016
12:17:27
А обычное не должно?

Lupsick
17.07.2016
12:17:45
просто бля серверное приложение которые является сокет-сервером

マイク
17.07.2016
12:19:18
Я ничего не понял, но ты не прав.

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