UNPKG

9.91 kBMarkdownView Raw
1# Change Log
2All notable changes to this project will be documented in this file.
3This project adheres to [Semantic Versioning](http://semver.org/).
4
5## [7.0.0] - 2016-10-19
6
7### Breaking Changes
8
9Full refactor of the application, moving it onto react-router v4. Our components have been structured in a nested manner to reflect the declarative nature of RR4. No more centralised routing configuration!
10
11Added code-split-component library to help us do declarative based Webpack 2 code splitting. This also simplifies our webpack configuration, no longer requiring the "context hack".
12
13Moved flow-typed definitions back to the root directory as the flow-typed guys have stated that this will be the default moving forward.
14
15Moves the RHL3 AppContainer resolution into a ReactHotLoader component.
16
17Moved the custom react flow types into the /src/shared/universal/types/react.js file.
18
19### Added
20
21A new npm task allowing you to remove all flow types from the source. You will just need to do some minor cleaning up thereafter.
22
23### Fixed
24
25Eslint import plugin version.
26
27### Changed
28
29Updated dependencies.
30
31## [6.0.0] - 2016-09-29
32
33### Breaking Changes
34
35A huge refactor of the application structure has taken place. Based on experience and using this boilerplate to build a larger application I noticed a lot of pain points, especially around the hot development experience. In order to alleviate lots of these problems the application has been restructured to build into 3 separate bundles:
36
37 - server
38 - universalMiddleware
39 - client
40
41The universalMiddleware bundle is new bundle, and will be the middleware that our express server will use to server our universal react application. Having it be built separately from the server allows you to target the bundle with a unique webpack configuration should you wish, whilst also allowing us to only rebuild the middleware when doing hot development.
42
43Some other notable breaking changes:
44
45 - The shared folders now contain two sub-folders, node and universal. The universal folder should contain all the code that is shared and safe to include with any of the bundles, whilst the node subfolder should only contain code shared between the server or universalMiddleware bundles.
46 - The favicon for the htmlPage render has been moved into the public folder.
47 - We are using the babel-preset-latest for ALL of our bundles. This allows you to use the same javascript syntax across any of them without worrying about what each target environment supports. In the future this will be optimized so that the node bundles will only get the syntax that they are missing transpiled.
48 - The webpack configuration DefinePlugin section has been refactored to specify the full `process.env.{key}` for each for the env vars we provide instead of replacing the whole `process.env` object. This allows you to provide any additional custom env vars during execution time.
49
50
51## [5.1.0] - 2016-09-27
52
53### Fixed
54
55An issue with the webpack configuration which prevented multiple chunks when build a dev version of the server bundle, this would then result in errors on resolving our async routes. Phew! That was a hard fought fight.
56
57### Changed
58
59Updates the routing configuration to be concise.
60
61## [5.0.0] - 2016-09-27
62
63### Breaking Change
64
65Unfortunately webpack doesn't support System.import statements containing expressions when doing a target=node bundle. Therefore I have had to reluctantly revert back to the more verbose previous way of doing things.
66
67### Fixed
68
69I have picked up on an issue with webpack's tree shaking feature. Importing a constant boolean value from another file (i.e. our config files) and wrapping a code block with an if statement based on the respective value doesn't result in tree shaking even if the value is false. Therefore I have had to "inline" these statements, which does then result in tree shaking working.
70
71For example:
72
73 import { IS_HOT_DEVELOPMENT } from '../config';
74 if (IS_HOT_DEVELOPMENT) {
75 // tree shake me
76 }
77
78Has to be:
79
80 if (process.env.NODE_ENV === 'development' && module.hot) {
81 // tree shake me
82 }
83
84Please be aware of this.
85
86## [4.1.0] - 2016-09-26
87
88### Added
89
90babel-polyfill to client bundle output.
91
92### Fixed
93
94Webpack context regex to be windows path friendly.
95
96System.import expression within routes to not use a template string as Webpack throws warnings for these.
97
98## [4.0.0] - 2016-09-24
99
100### Breaking Changes
101
102Big restructure and improvement to the dynamic routing / code splitting configuration.
103We no longer need the previous manual import hacks for the routes to allow Hot Module Reloading to work. Yay!
104The ~/src/shared/components/App/ now has subfolders, one for "lib" components (i.e. components to be reused across views/routes), and a "views" folder which will contain components used for our routes.
105All our primary routes which we will use for code splitting have been moved to ~/src/shared/components/App/views
106
107Environment variables from the .env files are now automatically applied to the webpack DefinePlugin section, no longer requiring any error prone manual intervention.
108
109### Changed
110
111Updates dependencies.
112
113Minor optimization to bundle build size.
114
115### Fixed
116
117Adds missing plugin dependency for the transform-object-rest-spread babel plugin.
118
119## [3.3.1] - 2016-08-11
120
121### Changed
122
123Moved flow files into the tools dir.
124
125Minor enhancement to eslint config to play nicely with flow type imports.
126
127Moved the styles/scripts imports from react-helmet to be below the application styles/scripts.
128
129Cleaned up the config guards.
130
131Updated the .envnow file resolution.
132
133### Fixed
134
135Added missing rimraf dependency.
136
137## [3.3.0] - 2016-08-10
138
139### Added
140
141Flow type checking. Just a simple configuration for now, and we are only including definitions from the maintained 'flow-typed' repo. Closes #57
142
143## [3.2.1] - 2016-08-10
144
145### Changed
146
147Moved public dir resolution into configs.
148
149## [3.2.0] - 2016-08-10
150
151### Added
152
153The transform-object-rest-spread and transform-class-properties as they are too useful when developing react projects.
154
155### Changed
156
157Centralised env config values into config files so that they get parsed and validated in a single place and once.
158
159
160## [3.1.0] - 2016-08-09
161
162### Adds
163
164Long-term caching support. Closes #58
165
166Base robots.txt file to the public assets.
167
168.ico to the static files supported file format lists in the webpack config factory.
169
170### Changes
171
172Pulled out utils from webpack configFactory.
173
174Moved favicon to be colocated with the htmlPage.
175
176The "public" folder is now routed to the HTTP root.
177
178### Fixed
179
180Fixed eslint rule on the configFactory.js
181
182## [3.0.1] - 2016-08-09
183
184### Changes
185
186Changed url-loader to only emit files for client bundles.
187
188Replaced "fake-style-loader" with "css-loader/locals". Thanks @giltig! Closes #59
189
190## [3.0.0] - 2016-08-09
191
192### Breaking Changes
193
194Complete restructure to the development and build tooling. All put into the "tools" directory now.
195
196Ripped out our runtime dependencies on webpack. This was done by adding some new environment configuration variables and then combining them with the awesome 'app-root-path' library.
197
198### Changes
199
200Improved the react-helmet implementation example.
201
202## [2.0.0] - 2016-08-08
203
204### Breaking Changes
205
206The server side render method has been massively simplified as we are now using
207react-helmet to control our page header from our components. Closes #11
208
209### Added
210
211A 'public' static files endpoint, with a favicon implementation. Closes #14
212
213### Changed
214
215The server render helper now resolves the 'assets.json' via the webpack configuration for the client bundle.
216
217### Fixed
218
219Small issue with the dev server not hot reloading when just the server code changes.
220
221The projects dependencies structure so that the "dependencies" section contains ALL libraries that are required for the server runtime. The "devDependencies" section contains the libraries required for building the project. Fixes #27
222
223## [1.2.2] - 2016-08-03
224
225### Changed
226
227Updated dependencies.
228
229Fixed dependencies - moving required devDependencies into dependencies.
230
231Fixed project to match latest eslint configuration.
232
233Disabled the eslint rule required all files containing JSX to have a .jsx file extension.
234
235## [1.2.1] - 2016-08-01
236
237No Changes. Version bump to fix npm documentation.
238
239## [1.2.0] - 2016-08-01
240
241### Changed
242
243The devServer is far more robust, with webpack changes or process term signals resulting in any existing connections being forcefully disposed, whilst if only the server/client bundles get recompiled then existing connections are allowed to end. This results in a much nice dev experience.
244
245Simplified the externals configuration for the server, making it that we don't rely on manual intervention on a per library install basis. Thanks @swernerx!!
246
247Updated dependencies.
248
249Node version to 6.3.1
250
251## [1.1.2] - 2016-07-29
252
253### Fixed
254
255HMR reloading of asynchronous react-router routes. We have had to add a workaround section within the routes configuration. Please see the routes/index.js file for more info.
256
257## [1.1.1] - 2016-07-26
258
259### Fixed
260
261Fixed the HMR configuration. We were incorrectly using module.hot.accept() which would actually accept all changes. Instead we needed to target the direct file.
262
263### Changed
264
265Updated dependencies.
266
267## [1.1.0] - 2016-07-24
268
269### Added
270
271url-loader with a configuration allowing for images/fonts to be imported. An
272example of this has been included in the App component.
273
274### Changed
275
276Updated dependencies.
277
278The client side router configuration now handles redirect and "no renderProps" cases.
279
280## [1.0.1] - 2016-07-19
281
282### Changed
283
284Updated the following dependencies:
285 - react-router
286 - eslint
287 - eslint-plugin-jsx-a11y
288
289## [1.0.0] - 2016-07-18
290
291### Added
292
293Version 1 of the react-universally boilerplate. From here on out we are all about semantic versioning with a clear recording of all changes made to the project.