UNPKG

10.4 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.1] - 2016-10-19
6
7### Fixed
8
9Issue where the universalMiddleware was being bundled into the server bundle.
10
11Duplicate react-router dependency on "devDependencies" and normal "dependencies".
12
13Render function of middleware to not unnecessarily wrap the react output with an additional div. This seem to have subvented the react checksum guard, even though the checksums should have failed.
14
15### Changed
16
17Updates to latest react-router 4 alpha.
18
19## [7.0.0] - 2016-10-19
20
21### Breaking Changes
22
23Full 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!
24
25Added 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".
26
27Moved flow-typed definitions back to the root directory as the flow-typed guys have stated that this will be the default moving forward.
28
29Moves the RHL3 AppContainer resolution into a ReactHotLoader component.
30
31Moved the custom react flow types into the /src/shared/universal/types/react.js file.
32
33### Added
34
35A new npm task allowing you to remove all flow types from the source. You will just need to do some minor cleaning up thereafter.
36
37### Fixed
38
39Eslint import plugin version.
40
41### Changed
42
43Updated dependencies.
44
45## [6.0.0] - 2016-09-29
46
47### Breaking Changes
48
49A 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:
50
51 - server
52 - universalMiddleware
53 - client
54
55The 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.
56
57Some other notable breaking changes:
58
59 - 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.
60 - The favicon for the htmlPage render has been moved into the public folder.
61 - 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.
62 - 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.
63
64
65## [5.1.0] - 2016-09-27
66
67### Fixed
68
69An 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.
70
71### Changed
72
73Updates the routing configuration to be concise.
74
75## [5.0.0] - 2016-09-27
76
77### Breaking Change
78
79Unfortunately 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.
80
81### Fixed
82
83I 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.
84
85For example:
86
87 import { IS_HOT_DEVELOPMENT } from '../config';
88 if (IS_HOT_DEVELOPMENT) {
89 // tree shake me
90 }
91
92Has to be:
93
94 if (process.env.NODE_ENV === 'development' && module.hot) {
95 // tree shake me
96 }
97
98Please be aware of this.
99
100## [4.1.0] - 2016-09-26
101
102### Added
103
104babel-polyfill to client bundle output.
105
106### Fixed
107
108Webpack context regex to be windows path friendly.
109
110System.import expression within routes to not use a template string as Webpack throws warnings for these.
111
112## [4.0.0] - 2016-09-24
113
114### Breaking Changes
115
116Big restructure and improvement to the dynamic routing / code splitting configuration.
117We no longer need the previous manual import hacks for the routes to allow Hot Module Reloading to work. Yay!
118The ~/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.
119All our primary routes which we will use for code splitting have been moved to ~/src/shared/components/App/views
120
121Environment variables from the .env files are now automatically applied to the webpack DefinePlugin section, no longer requiring any error prone manual intervention.
122
123### Changed
124
125Updates dependencies.
126
127Minor optimization to bundle build size.
128
129### Fixed
130
131Adds missing plugin dependency for the transform-object-rest-spread babel plugin.
132
133## [3.3.1] - 2016-08-11
134
135### Changed
136
137Moved flow files into the tools dir.
138
139Minor enhancement to eslint config to play nicely with flow type imports.
140
141Moved the styles/scripts imports from react-helmet to be below the application styles/scripts.
142
143Cleaned up the config guards.
144
145Updated the .envnow file resolution.
146
147### Fixed
148
149Added missing rimraf dependency.
150
151## [3.3.0] - 2016-08-10
152
153### Added
154
155Flow type checking. Just a simple configuration for now, and we are only including definitions from the maintained 'flow-typed' repo. Closes #57
156
157## [3.2.1] - 2016-08-10
158
159### Changed
160
161Moved public dir resolution into configs.
162
163## [3.2.0] - 2016-08-10
164
165### Added
166
167The transform-object-rest-spread and transform-class-properties as they are too useful when developing react projects.
168
169### Changed
170
171Centralised env config values into config files so that they get parsed and validated in a single place and once.
172
173
174## [3.1.0] - 2016-08-09
175
176### Adds
177
178Long-term caching support. Closes #58
179
180Base robots.txt file to the public assets.
181
182.ico to the static files supported file format lists in the webpack config factory.
183
184### Changes
185
186Pulled out utils from webpack configFactory.
187
188Moved favicon to be colocated with the htmlPage.
189
190The "public" folder is now routed to the HTTP root.
191
192### Fixed
193
194Fixed eslint rule on the configFactory.js
195
196## [3.0.1] - 2016-08-09
197
198### Changes
199
200Changed url-loader to only emit files for client bundles.
201
202Replaced "fake-style-loader" with "css-loader/locals". Thanks @giltig! Closes #59
203
204## [3.0.0] - 2016-08-09
205
206### Breaking Changes
207
208Complete restructure to the development and build tooling. All put into the "tools" directory now.
209
210Ripped 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.
211
212### Changes
213
214Improved the react-helmet implementation example.
215
216## [2.0.0] - 2016-08-08
217
218### Breaking Changes
219
220The server side render method has been massively simplified as we are now using
221react-helmet to control our page header from our components. Closes #11
222
223### Added
224
225A 'public' static files endpoint, with a favicon implementation. Closes #14
226
227### Changed
228
229The server render helper now resolves the 'assets.json' via the webpack configuration for the client bundle.
230
231### Fixed
232
233Small issue with the dev server not hot reloading when just the server code changes.
234
235The 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
236
237## [1.2.2] - 2016-08-03
238
239### Changed
240
241Updated dependencies.
242
243Fixed dependencies - moving required devDependencies into dependencies.
244
245Fixed project to match latest eslint configuration.
246
247Disabled the eslint rule required all files containing JSX to have a .jsx file extension.
248
249## [1.2.1] - 2016-08-01
250
251No Changes. Version bump to fix npm documentation.
252
253## [1.2.0] - 2016-08-01
254
255### Changed
256
257The 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.
258
259Simplified the externals configuration for the server, making it that we don't rely on manual intervention on a per library install basis. Thanks @swernerx!!
260
261Updated dependencies.
262
263Node version to 6.3.1
264
265## [1.1.2] - 2016-07-29
266
267### Fixed
268
269HMR 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.
270
271## [1.1.1] - 2016-07-26
272
273### Fixed
274
275Fixed the HMR configuration. We were incorrectly using module.hot.accept() which would actually accept all changes. Instead we needed to target the direct file.
276
277### Changed
278
279Updated dependencies.
280
281## [1.1.0] - 2016-07-24
282
283### Added
284
285url-loader with a configuration allowing for images/fonts to be imported. An
286example of this has been included in the App component.
287
288### Changed
289
290Updated dependencies.
291
292The client side router configuration now handles redirect and "no renderProps" cases.
293
294## [1.0.1] - 2016-07-19
295
296### Changed
297
298Updated the following dependencies:
299 - react-router
300 - eslint
301 - eslint-plugin-jsx-a11y
302
303## [1.0.0] - 2016-07-18
304
305### Added
306
307Version 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.