UNPKG

8.21 kBMarkdownView Raw
1## Changelog
2
3### 3.0.0-alpha
4
5Big changes both to internals and usage. No docs yet but you can look at https://github.com/gaearon/react-hot-boilerplate/pull/61 for an example.
6
7### 2.0.0-alpha
8
9**Experimental release that isn't really representative on what will go in 2.0, but uses the new engine.**
10
11Some ideas of what should be possible with the new engine:
12
13* There is no requirement to pass `getRootInstances()` anymore, so React Hot Loader doesn't need `react/lib/ReactMount` or walk the tree, which was somewhat fragile and changing between versions
14* Static methods and properties are now hot-reloaded
15* Instance getters and setters are now hot reloaded
16* Static getters and setters are now hot reloaded
17* Deleted instance methods are now deleted during hot reloading
18* Single method form of [autobind-decorator](https://github.com/andreypopp/autobind-decorator) is now supported
19
20What might get broken:
21
22* We no longer overwrite or even touch the original class. Every time makeHot is invoked, it will return a special proxy class. This means a caveat: for example, static methods will only be hot-reloaded if you refer to them as `this.constructor.doSomething()` instead of `FooBar.doSomething()`. This is because React Hot Loader calls `makeHot` right before exporting, so `FooBar` still refers to the original class. Similarly, `this.constructor === App` will be `false` inside `App` unless you call `App = makeHot(App)` manually, which you can't do with React Hot Loader. **I'm not sure how much of a problem this will be, so let me know if it pains you.** In the longer term, we will deprecate React Hot Loader in favor of a Babel plugin which will be able to rewrite class definitions correctly, so it shouldn't be a problem for a long time. If there is demand, we can introduce a mode that rewrites passed classes, too.
23
24### 1.3.0
25
26* Recover from module errors on module level (**[#187](https://github.com/gaearon/react-hot-loader/pull/187)**)
27
28### 1.2.9
29
30* Silently ignore exports that raise an error when accessed (#114)
31* Update `source-map` dependency
32
33### 1.2.8
34
35* Remove React from peerDependencies
36* Update React Hot API to support React 0.14 beta 1
37
38### 1.2.7
39
40* Preserve CommonJS `exports` context in the wrapping closure (**[#124](https://github.com/gaearon/react-hot-loader/issues/124)**)
41
42### 1.2.6
43
44* Fix autobinding on newly added methods for `createClass`-style classes
45
46### 1.2.5
47
48* Fix “React is not defined” error
49
50### 1.2.4
51
52* Avoid updating each class twice in React 0.12
53
54### 1.2.3
55
56* Explicitly exclude `react/lib` files from processing. You **should** use `exclude: /node_modules/` in configuration, but at least this doesn't blow up for those who don't.
57
58### 1.2.2
59
60* Fix crash on React 0.13. Now compatible!
61
62### 1.2.1
63
64* Don't try to flatten inheritance chains, as it causes problems with `super`
65* Instead, automatically opt custom base classes into hot reloading as long as they descend from `React.Component` (in React 0.13). If your custom base class doesn't do that but you'd still want to have hot reloading, you need to manually opt it in via `module.makeHot` API.
66
67### 1.2.0
68
69* Support hot-reloading components without a base class (**[react-hot-api#5](https://github.com/gaearon/react-hot-api/issues/5)**)
70* Support hot-reloading inheritance chains (**[react-hot-api#10](https://github.com/gaearon/react-hot-api/issues/10)**)
71* Support using React 0.13 as an external
72
73### 1.1.7
74
75* Add React 0.13 RC2 to peerDeps
76
77### 1.1.6
78
79* Allow React 0.13 RC1
80* Better support for ES6 inheritance
81* Fix reloading for modules with null prototype chain (**#82**)
82
83### 1.1.5
84
85* Wrap user code in IEFF to prevent losing `"use strict"`. Fixes #75
86
87### 1.1.4
88
89* Fix crash when hot-reloading element factory. (Note: React discourages exporting factories.)
90
91### 1.1.3
92
93* Avoid warnings on React 0.13
94
95### 1.1.2
96
97* Compatibility with React 0.13.0-beta.1
98
99### 1.1.1
100
101* Fix edge cases by requiring `react/lib/ReactMount` in transformed source files
102* Add a warning if `ReactMount` doesn't return anything useful (e.g. when using external React)
103
104### 1.1.0
105
106* Skipping `node_modules` entirely [wasn't](https://github.com/gaearon/react-hot-loader/issues/58) [the best idea](https://github.com/gaearon/react-hot-loader/issues/55). Instead, we now specifically skip `node_modules/react/`, `node_modules/webpack/` and `node_modules/react-hot-loader/`. However you are still **encouraged** to [add `exclude: /node_modules/` to your loader config](https://github.com/gaearon/react-hot-boilerplate/blob/master/webpack.config.js#L24) for best performance.
107* Now modules that don't export any valid React classes in `module.exports` or any its properties will not be auto-accepted. This prevents hot loader from trying to handle non-React updates and allows changes in plain JS files to propagate to components that can handle them. For example, this allows [react-jss](https://github.com/jsstyles/react-jss) mixin to apply hot updates to JSS styles.
108
109### 1.0.7
110
111* Skip `node_modules` entirely. Fixes [#54](https://github.com/gaearon/react-hot-loader/issues/54) on Windows.
112
113### 1.0.6
114
115* Add `require('react-hot-loader/Injection')` to override Hot Loader behavior. Now you can supply your own way of getting root component instances, so Hot Loader can also work in environment where `require('react/lib/ReactMount')` is not available (for example, [when React is used as standalone bundle and not NPM package](https://github.com/gaearon/react-hot-loader/issues/53)).
116
117### 1.0.5
118
119* Fix stack overflow when hotifying same class twice ([#52](https://github.com/gaearon/react-hot-loader/issues/52))
120
121### 1.0.4
122
123* Allow both `module.exports` and its properties be components (Fixes [#50](https://github.com/gaearon/react-hot-loader/issues/50))
124
125### 1.0.3
126
127* In addition to hotifying `module.exports` by default, also hotify all its own properties
128
129### 1.0.2
130
131* Don't try to hot-replace `module.export`ed `ReactElement`s
132
133### 1.0.1
134
135* Delay `require`ing `ReactMount` to avoid circular dependencies
136* Don't process React or Webpack internals to avoid potential issues
137
138### 1.0.0
139
140* Don't rely on `createClass` regex or any other regex
141* Only `module.exports` is hot by default
142* Supports ES6 classes when they land in React 0.13
143* Supports dynamically created classes
144* Manual mode
145
146See [what changed and how to migrate to 1.0](https://github.com/gaearon/react-hot-loader/blob/master/docs/README.md#migrating-to-10).
147
148### 0.5.0
149
150* Adds source map support, contributed by [Jake Riesterer](https://github.com/jRiest)
151
152### 0.4.5
153
154* Collapse all hot loader code in one line so it doesn't obscure beginning of file.
155
156### 0.4.4
157
158* Errors occuring in module definition (such as `ReferenceError`) should not disable further reloading (fixes **[#29](https://github.com/gaearon/react-hot-loader/issues/29)**)
159
160### 0.4.3
161
162* Support lowercase `react` reference name and usage with ES6 classes (`createClass(MyComponent.prototype)`) via **[#27](https://github.com/gaearon/react-hot-loader/issues/27)**
163
164### 0.4.2
165
166* Catch errors in modules and log them instead of reloading (fixes **[#21](https://github.com/gaearon/react-hot-loader/issues/21)**)
167
168### 0.4.1
169
170* Use more precise [`React.createClass` regex](https://github.com/gaearon/react-hot-loader/commit/f71c6785131adcc85b91789da0d0a0b9f1a9713f) to avoid matching own code when hot loader is applied to all JS files.
171
172### 0.4.0
173
174* Ignore files that contain no `createClass` calls (fixes **[#17](https://github.com/gaearon/react-hot-loader/issues/17)**)
175* Remove the need for pitch loader (fixes **[#19](https://github.com/gaearon/react-hot-loader/issues/19)**)
176* Improve performance by only using one loader instead of two
177* Now that performance is acceptable, remove desktop notifications and `notify` option
178* It is now recommended that you use `devtool: 'eval'` because it's much faster and has no downsides anymore
179
180### 0.3.1
181
182* Avoid warnings on old browsers with missing `Notification` API
183* Errors don't cause page reload anymore
184
185### 0.3.0
186
187* Use React 0.11