1 | ## Changelog
|
2 |
|
3 | ### 3.0.0-alpha
|
4 |
|
5 | Big 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 |
|
11 | Some 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 |
|
20 | What 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 |
|
146 | See [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
|