-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathto_do.txt
262 lines (189 loc) · 18.1 KB
/
to_do.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
https://github.com/storybooks/react-storybook глянуть
export class RepoListItem extends React.PureComponent
возможно PureComponent нужно юзать для компонентов
подключать редюсеры, саги и компонента в один файл и из него экспортить все
import reducer from './HomeScreenReducer'
export {default as HomeScreen} from './HomeScreen'
export default reducer
чтобы в один чанк попало, возможно, а может и не надо, подумай
константы статус кодов сделать в конфиге сделать в отдельном, чтобы шарить можно было между кодом бэкэнда и фронта
<meta name="viewport" content="width=device-width, initial-scale=1"> прочесть про это
подключить import {If, Then, Else} from 'react-if'; возможно
https://github.com/davezuko/react-redux-starter-kit
css modules для дева генерить хеш, где префикс - нормальное название класса
когда смержат pr в stylelint-е, чтобы .gitignore работал, накатить новую версию stylelint-а
выяснить нужно ли подключать babel-polyfill для ноды, когда юзаешь babel-env-preset
вроде пишут, что babel-node позаботится о babel-polyfill, но проверь и если нужно подключи где нужно. Возможно при компиляции в отдельную папку билда нужно будет как-то
подключать
nodemon + babel-node и заюзать import&export в файлах, если это возможно, например, как будет webpack стартовать конфиг с import-ами
в json-server подключать контент db.json, но юзать in momory сохранение, и эот же замоканный север(db.json файл) юзать и для e2e тестов помимо юзания как моковых данных на время
девелопмента, плюс, наверное, сервать статику с помощью json-server во время e2e тестов
https://github.com/AngularClass/angular2-webpack-starter/blob/master/package.json
заюзать с babel-node еще nodemon
docker однажды изучить
сделать папку со стабами для json-server, в которой будут стабы для e2e тестов, тока сначала проверить, что поддержка авторизации есть у json-server
https://github.com/webpack/docs/wiki/webpack-dev-server про hom module replacement и live reload
4 роутер подключить и редакс либу для него
лайв релоад или хот модуль реплейсмент https://medium.com/@pcruz7/frontend-development-with-webpack-json-server-tape-and-npm-pt-1-62c7601b62c1
пре скрипты вверх мувнуть
роутер новый глянуть, может подключить
возможно app компонент тоже динамически подгружать(глянь еще в роутере новом как можно ли удобно)
лайв релоад или хот модуль реплейсмент https://medium.com/@pcruz7/frontend-development-with-..
пре скрипты вверх мувнуть
https://medium.com/@pcruz7/frontend-development-with-webpack-json-server-tape-and-npm-pt-1-62c7601b62c1
не удаляются папки при ребилде, проверить почему
nodemon заюзать для старта серваков
энд ту энд тесты теперь не будут работать запуск их, пофиксай
const server = {
listen(serverReadyCallback) {
this.instance = app.listen(PORT, HOST, serverReadyCallback);
},
close() {
this.instance.close();
},
};
if (require.main === module) {
server.listen();
}
module.exports = server;
возможно вообще коммон сделать файл, который будет юзаться и в вепаке и в серваках, туда пути, например, вынести
папки называть с dir наконце в PATHS
new HtmlWebpackPlugin({
template: './index.pug', сделать переменной пути, ток проверь что работает, а то может нужен относительный путь
if (IS_ACTIVE_ENV.development) {
require(PATHS.apiMockServer)(common);
}
в e2e тестах тоже нужно запускать или фейковую апишку, либо реальную
возможно убрать сборку вебпака для тестов как-то и ранать сборку для дева вместо этого
вынести манифест, как только с ишью что-то сделают https://github.com/jouni-kantola/inline-chunk-manifest-html-webpack-plugin/issues/3
react-intl заюзать и настроить
не удаляются старые исходдники билдов dll
моки для эндпоинтов почитай как с вебпаком делают или юзают сторонний модуль типо интерсептора, как мы юзали
https://robertknight.github.io/posts/webpack-dll-plugins/ возможно сделать одну настройку сборки для dll, как в статье, вместо отдельных для babel-polyfils и vendor
обновить пакеты все, все новые добавить
плюс добавить реакт флексбокс грид и посмотреть как там конфигурится ширина адаптации
с манифестом была фигня, так и не доделал, чтобы выносился он отдельно от файлов сборки(бандлов), посмотри
заюзать https://github.com/gajus/babel-plugin-react-css-modules, пока не надо скорее всего
хелмет заюзать для тайтла страницы
lang атрибут добавить в html
intl добавить для локализации
возможно нужен будет https://github.com/yahoo/babel-plugin-react-intl
шринкврап заюзать
для автопрефиксера заюзать версии браузеров
найти плагин слайдер со свапом
для бэйбл энв пресета глянуть может уже доступно свойство browserslist
заюзать или этот плагин или другой https://www.npmjs.com/package/babel-plugin-transform-react-remove-prop-types, и для бейбла посмотреть конфиг как для прода, как для дева сетается, через env че-тоЫ
- graphQL почитать и заюзать, есть такой модуль express-graphql
.htaccess файл прочесть, походу он конфигурит вебсервер. и прочти как с этим роутеры работают, например, реакт роутер
что значит расширение md у файлов.
формат changelog.md прочесть
формат readme.md прочесть
формат LICENSE.txt
http://editorconfig.org/ прочти и добавь файл с конфигом в проект
плюс editorconfig-tools модуль
"lint-staged": {
"*.{cmd,html,json,md,sh,txt,xml,yml}": [
"editorconfig-tools fix",
"git add"
],
посмотри конфиг для вебпака, в частности энтри для бэйбла полифила
https://github.com/kriasoft/react-starter-kit посмотри все что можно
проблема с перебилдом вебпака при юнит тестах
azure/heroku
https://github.com/kriasoft/react-starter-kit/blob/master/tools/postcss.config.js
заюзать https://github.com/kriasoft/react-starter-kit/blob/master/tools/run.js
docker почитать и подключить наверное
flowtype прочти и посмотри нужно ли, если что заюзать как плагин для eslint-а, хотя походу ненужное гавно, старье, хотя скачивания растут
про пути прочесть, когда нужна ./, а когда можно без нее
- про формат Changelog.md файла прочесть, как его вести, есть спека, когда-то видел ее
- "postinstall": "webdriver-manager update", почитать про хуки npm какие есть и в постинстал поместить то, что нужно, например, установка драйверов,
плюс в хук гита поместить npm i
- http://stackoverflow.com/questions/25041643/how-to-create-a-npm-script-to-run-several-commands-to-run-some-tests
- удалить адаптер для моки, установить просто моку
- что такое смок тесты
- use strict
- stylelint, eslint - генерация отчетов
- карма, jest, тестовые фреймворки
- шринк врап
- английский репититора найти
- прочесть по тестированию https://medium.com/@TuckerConnelly/good-practices-for-testing-react-apps-3a64154fa3b1#.4oehzn2pm
- донастроить e2e тесты https://github.com/vvo/selenium-standalone/issues/263, плюс добавить объекты страниц
https://martinfowler.com/bliki/PageObject.html
http://www.protractortest.org/#/page-objects
- инсталяцию селениум сервера и драйверов браузеров как-то, наверное, добавить, после npm i, чтобы на ci не нужно было
вручную устанавливать селениум сервер и драйвера браузеров
- репортер для webdriverio подключить, чтобы для jenkins-а генерило отчет
- репортеры для stylelint, estlint и т.п. подключить, чтобы для jenkins-а генерило отчет
- подключить плагины для webdriverio, чтобы css скриншоты делал и сравнивал дифы, то есть тестил верстку, вот тут настроено https://github.com/jonyet/webdriverio-boilerplate
- это бэйз проект, переименовать, запушить, закончить, потом форкнуться и девелопить проект свой
- с дев сервером разобраться
- коммон чанк плагин так и не доучил, доучи!
- webpack.NoErrorsPlugin() посмотреть зачем он нужен и подключить если что
- в консоле браузера ворнинги, реакт предупреждает, что нужно подключить файл сбилженный вместо исходного кода его, посмотри и замени если что
- peer dependency прочесть что это наконец
- возможно прикрутить на всякий случай source-map-loader(Assuming you are using a package that uses inline sourcemaps in its distribution, you can use source-map-loader to make webpack aware of them. Without setting it up against the package, you will get minified debug output. This is a special case, though, and often you can skip this step.)
- http://webpack.github.io/analyse/ попробовать для анализа
- "Download the React DevTools for a better development experience: https://fb.me/react-devtools"
- chunk-manifest-webpack-plugin подключить, посмотри когда смержат пулреквест для поддержки html webpack plugin-а
- ишью создал https://github.com/boopathi/babili-webpack-plugin/issues/23, как пофиксают, подумай, может нужно что-то будет сделать, а может сразу будет работать после фикса
чекни, что картинки и другие ресурсы тоже попадают в папку билда, если их помещаешь в dll бандл
юнит и энд ту энд тесты настроить запуск
прочитать про типы тестирования
что такое смоук тесты и т.п.
заюзать и проверить как работает в исходном коде(исходниках)
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
},
})
есть еще опция performance в корне конфига, посмотри, что она делает и может заюзать
- postinstall npm hook прочесть про хуки npm-а и возможно заюзать для своего проекта(добавь это
в to_do.txt в проекте), например, можно для npm install заюзать, как выкачаешь репу
возможно dll только для дева нужно юзать
- context опцию задавать dll плагину и референс dll плагину, а может и не надо ни тому, ни другому
также, наверное, заюзать как на react-boilerplate, то есть тянуть в dll все зависимости
из package.json в dependencies, и исключедать какие нужно
- посмотри для удаления"build:clean": "npm run test:clean && rimraf ./build"
rimraf это модуль нодовский
- заюзать
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
},
}),
- заюзать cross-env и env передавать не через параметры вебпака, а через переменную окружения
"build": "cross-env NODE_ENV=production webpack --config internals/webpack/webpack.prod.babel.js --color -p --progress"
- проверь еще раз все опции конфига вебпака, которые настроил, где-то hash, где-то chunkhash юзается, плюс dllPlugin узнай полностью, как все устроено
- про манифест в вебпаке прочесть(это бутстрап, который добавляется в чанк главный)
- devtool: 'eval' вроде все юзают
- глянуть настройка для babel-loader кэш тру, и настройка самого вебпака кэш тру
- посмотреть какие крутые либы есть для реакта, например, либы для дебага в браузере редакса, чтобы можно по шагам ходить
- три шейкинг заюзать
- сорс мапы
- удаление папки билда
- вендор чанк, коммон чанк, (плюс прочесть про генерацию уникальных хешей) плюс CommonsChunkPlugin(и прочесть, чтобы из динамических require тоже вытягивало)
- прочесть про типы чанков
- минификации
- DllPlugin и DllReferencePlugin прочесть и заюзать, если все круто
- https://github.com/webpack/docs/wiki/list-of-plugins посмотреть все плагины, что есть
- соурс мапы включить
- три шэйкинг добавить, прочесть как
- шринк врак прочесть и ярн посмотреть и его лок файл
- ContextReplacementPlugin прочесть, может для require-а поможет на проекте на работе
- webpack-merge посмотреть, может и норм будет заюзать
- прочесть и прикрутить потом https://webpack.js.org/concepts/hot-module-replacement/
- прочесть https://medium.com/webpack/webpack-http-2-7083ec3f3ce6#.ysjysu2ab
- output.chunkFilename заюзать с хешем, короче чтобы кэшировалось тоже, прочти и заюзай
- серверный рендеринг прикрутить
- для вебпака энтри сделать vendor(совместно с CommonsChunkPlugin заюзать) и еще в index.pug подключить скрипты, плюс почитать про хеш, как сделать,
чтобы имя файла не менялось(https://webpack.js.org/guides/caching/) плюс прочти https://robertknight.github.io/posts/webpack-dll-plugins/
- про path где юзать, а где нет в вебпаке узнать и почему так
- importLoaders: 1 в css-loader-е узнать зачем и если нужно поправить в конфиге своем
- https://www.npmjs.com/package/intl прочесть про этот стандарт и посмотреть нужен ли теперь будет moment.js(если нужен, то подключи, плюс глянь, как это
связано с react-intl модулем)
- заюзал husky для гит хуков, теперь можно добавить npm i на пост пул или мерж, как там, посмотри, попробуй и прочие штуки на разные хуки можно добавить, подумай
какие
- заменить browserslist в package.json на browsers для babel&postcss, а потом, когда заимплементят поддержку
для browserslist, вернуть его
- прогнать линтером все файлы и амменднуть коммит
mobx для react-а глянуть, что к чему