1 | # HappyPack Changelog
|
2 |
|
3 | ## 5.0.1
|
4 |
|
5 | - Fixed an issue causing HappyPack to fail when hard-source-webpack-plugin
|
6 | is enabled on Webpack 3. Refs GH-251, thanks to @FengXianGuo for the fix!
|
7 |
|
8 | ## 5.0.0
|
9 |
|
10 | ### Breaking changes
|
11 |
|
12 | - Minimum supported version of node is now 6.11.5
|
13 |
|
14 | ### Features
|
15 |
|
16 | - Added support for webpack 4
|
17 | - New option `use`
|
18 | - New option `loaders`
|
19 |
|
20 | ## 5.0.0-beta.4
|
21 |
|
22 | - The `use` option now works FRD. Who thought renaming variables would be so
|
23 | hard? Refs GH-225, thanks to @inoyakaigor
|
24 |
|
25 | ## 5.0.0-beta.3
|
26 |
|
27 | - The `rules` option that was introduced in 5.0.0-beta.1 was meant to be named
|
28 | `use` and has thus been renamed. Sorry about the confusion!
|
29 |
|
30 | ## 5.0.0-beta.2
|
31 |
|
32 | - Fixed deprecation notice introduced by webpack 4 re `compiler.plugin`. Thanks
|
33 | to @log2-hwan, refs GH-218.
|
34 |
|
35 | ## 5.0.0-beta.1
|
36 |
|
37 | - Added support for webpack4 resolving APIs, thanks to @marcokam. Refs GH-215
|
38 | - HappyPlugin now accepts `rules` along with `loaders` for the loader list so
|
39 | that it's consistent with webpack notation.
|
40 |
|
41 | ### Breaking changes
|
42 |
|
43 | - Minimum supported version of node has been upped to v6.11.5 to match
|
44 | webpack's.
|
45 |
|
46 | ## 4.0.1
|
47 |
|
48 | Maintenance release for stripping down the built package to include only
|
49 | the source files and to exclude transient/development-specific files. Refs
|
50 | GH-205, thanks to @filipesilva.
|
51 |
|
52 | ## 4.0.0
|
53 |
|
54 | Breaking release with two primary changes:
|
55 |
|
56 | First, this release contains a fix for a long-standing issue on Windows
|
57 | systems where the worker processes would hang indefinitely.
|
58 |
|
59 | Second, the caching functionality has been removed[1]. Users relying on the
|
60 | caching functionality may want to consider using the dedicated
|
61 | [cache-loader](https://github.com/webpack-contrib/cache-loader) but please
|
62 | keep in mind that this is not officially supported or endorsed by HappyPack
|
63 | and is not guaranteed to work (as is the case with other loaders.)
|
64 |
|
65 | [1] See [this thread](https://github.com/amireh/happypack/issues/154#issuecomment-305627697)
|
66 | for more context about the caching change.
|
67 |
|
68 | ## 4.0.0-beta.5
|
69 |
|
70 | - Support for webpack{2,3} loader context API `this.getDependencies`
|
71 | - Support for webpack{2,3} loader context API `this.getContextDependencies`
|
72 | - Now interoperable with `cache-loader`
|
73 |
|
74 | ## 4.0.0-beta.4
|
75 |
|
76 | - Default to buffered messaging mode when using standalone thread pools on
|
77 | Windows.
|
78 |
|
79 | ## 4.0.0-beta.3
|
80 |
|
81 | Fixed bug around the use of `process.send()` that was causing a hang on
|
82 | Windows with sufficiently large number of modules (and message length.)
|
83 |
|
84 | The following parse (on Linux) shows the penalty in buffered vs non-buffered
|
85 | modes and implementations:
|
86 |
|
87 | elapsed (ms) | buffering | mean (ms) | penalty (ms)
|
88 | ------------ | --------- | --------- | ------------
|
89 | 22211 | none
|
90 | 21816
|
91 | 22572
|
92 | 21179
|
93 | 21035 | | 21762.6 | 0
|
94 | 21723 | basic
|
95 | 22585
|
96 | 23372
|
97 | 22500
|
98 | 22693 | | 22574.6 | 812
|
99 | 24865 | async.queue
|
100 | 23010
|
101 | 22717
|
102 | 23530
|
103 | 23732 | | 23570.8 | 1808
|
104 | 21363 | basic + process.nextTick
|
105 | 22220
|
106 | 21901
|
107 | 21871
|
108 | 22306 | | 21932.2 | 170
|
109 | 23349 | basic (again)
|
110 | 22043
|
111 | 21904
|
112 | 23435
|
113 | 23508 | | 22847.8 | 1085
|
114 | 22735 | basic + process.nextTick (again)
|
115 | 21793
|
116 | 22412
|
117 | 21900
|
118 | 22656 | | 22299.2 | 537
|
119 |
|
120 | ## 4.0.0-beta.2
|
121 |
|
122 | - Errors are now property serialized in `emitWarning` and `emitError` loader
|
123 | APIs. Refs GH-161
|
124 | - Deprecation upgrade: now using `loaderUtils.getOptions` instead of
|
125 | `.parseQuery`, refs GH-140
|
126 |
|
127 | ## 4.0.0-beta.1
|
128 |
|
129 | - Support for file-system caching has been dropped. Use [cache-
|
130 | loader](https://github.com/webpack-contrib/cache-loader) if you're after this
|
131 | functionality.
|
132 | - In the light of the caching change, the following options have lost their
|
133 | meaning and instead wish you a very happy life. Please note that as of this
|
134 | version configuring them will cause a warning to be logged to the console
|
135 | while in the future they will cause an exception to be thrown:
|
136 | - `tempDir`
|
137 | - `cache`
|
138 | - `cachePath`
|
139 | - `cacheContext`
|
140 | - `cacheSignatureGenerator`
|
141 | - The `enabled` option has been deprecated and will be removed in a future
|
142 | version. As disabling the plugin already requires the user to modify their
|
143 | config (e.g. to adjust the loader listings) this option had very little
|
144 | value.
|
145 |
|
146 | ## 3.1.0
|
147 |
|
148 | - Fixed an edge race condition re cache signatures. Thanks to @saifelse, refs GH-159
|
149 | - Now propagating loader errors correctly to webpack from background processes. Thanks to @zinserjan, refs GH-14
|
150 | - Now exposing "minimize" to loader contexts. Thanks to @adventure-yunfei, refs GH-139
|
151 |
|
152 | ## 3.0.3
|
153 |
|
154 | - Added more webpack2 compatibility fixes
|
155 | - Fixed an issue that was causing cached files to be ignored. Thanks to
|
156 | @lijianzhang, refs GH-115
|
157 |
|
158 | ## 3.0.2
|
159 |
|
160 | - Accept "this.plugins" as a function in the loader context since webpack2
|
161 | now allows it to either be an object or a function. Thanks to @grigory51,
|
162 | refs GH-106
|
163 |
|
164 | ## 3.0.1
|
165 |
|
166 | - The temporary file path used for writing a loader's output is now suffixed
|
167 | with a random identifier to work around an edge case reported in GH-92.
|
168 | Big thanks to @frankLife for the effort.
|
169 |
|
170 | ## 3.0.0
|
171 |
|
172 | This release, although it's a major one, was mostly concerned with internal
|
173 | changes and improvements to how the plugin worked. Most side-effects and global
|
174 | state has been eliminated, which should hopefully result in fewer surprises
|
175 | when attempting to use HappyPack in a multi-build webpack setting.
|
176 |
|
177 | - HappyPack will no longer output anything to the console if webpack is running
|
178 | in profiling mode (`--profile`) in order not to corrupt any JSON output. You
|
179 | can restore the previous behavior by setting the new option
|
180 | `verboseWhenProfiling` to `true`. Refs GH-76
|
181 | - [BREAKING] Inferring loaders for configuration is no longer supported! If you
|
182 | were supplying { happy: { id: 'something' } } to your webpack loader configuration
|
183 | so that HappyPack picks it up, you need to rewrite that part of the config
|
184 | as is shown in the README.
|
185 | - [POTENATIALLY BREAKING] HappyPlugin will no longer attempt to generate an
|
186 | incremental ID to use if none is passed. Instead, it will simply default to
|
187 | `'1'` for an id in case it was not overridden by the user. This behavior
|
188 | never actually provided any benefit since if you had multiple plugins
|
189 | referenced by multiple loaders, you still had to provide each loader with a
|
190 | distinct id (the loaders never incremented such a counter or relied on it.)
|
191 | This solves GH-88.
|
192 | - Thread pools can now be shared across multiple compilers/builds! The plugin
|
193 | and thread pools will correctly map each compiler to its configuration and
|
194 | instruct the workers to use the correct configuration when they do their
|
195 | work. Refs GH-82 and GH-72.
|
196 |
|
197 | **Internal refactors**
|
198 |
|
199 | - `HappyPlugin` and `HappyLoader` no longer deal with the RPCHandler to
|
200 | register active compiler or loader instances. Instead, this book-keeping is done implicitly by the _thread pools_ (which own the RPC handlers) when they are started, requested to compile, or stopped.
|
201 | - The internal API `HappyPlugin.resetUID` has been dropped
|
202 | - The internal API `HappyPlugin.isVerbose` is now hidden
|
203 | - The internal API `HappyPlugin.isDebug` is now hidden
|
204 | - The internal API `HappyPlugin.prototype.compileInBackground` is now hidden
|
205 | - The internal API `HappyPlugin.prototype.compileInForeground` is now hidden
|
206 | - The internal API `HappyPlugin.prototype._performCompilationRequest` is now hidden
|
207 | - The internal API `HappyThreadPool.get` has been dropped. Instead, the thread pool exposes a `compile` API similar to the Thread's.
|
208 | - The internal API `HappyThreadPool.getRPCHandler` has been dropped
|
209 |
|
210 | ## 2.2.1
|
211 |
|
212 | - Fixed an edge-case issue that was causing happypack to crash when a shared
|
213 | threadpool is used by a pre-loader and a loader (or post-loader) that are
|
214 | processing the same file. Refs GH-60
|
215 | - Made it possible to completely silence happypack's console output by setting
|
216 | verbose to `false` and introduced the `debug` option to control diagnostic
|
217 | message logging. Refs GH-64
|
218 |
|
219 | ## 2.2.0
|
220 |
|
221 | - Fixed a regression in scanning loader "string chains" (multiple loaders
|
222 | specified in the same string separated by `!`), refs GH-68
|
223 | - Added support for the loader API `this.loadModule()` which is used by
|
224 | less-loader, refs GH-66
|
225 |
|
226 | ## 2.1.3
|
227 |
|
228 | - Fixed an issue where certain loader configurations with queries weren't being
|
229 | properly recognized by HappyPack. Now, all known configuration variants
|
230 | should work. (GH-65 and GH-26)
|
231 |
|
232 | ## 2.1.2
|
233 |
|
234 | - Process argv will no longer be passed to the child processes spawned by
|
235 | HappyPack (refs GH-47)
|
236 | - Support for the `target` loader context variable has been added. Thanks to
|
237 | @Akkuma (refs GH-46)
|
238 |
|
239 | ## 2.1.1
|
240 |
|
241 | - Fixed an issue where happypack would crash when loading invalid/corrupt
|
242 | cache or source-map files. Big thanks to @benhughes for providing the patch in GH-42
|
243 |
|
244 | ## 2.1.0
|
245 |
|
246 | - Introduced SourceMap support
|
247 |
|
248 | ## 2.0.6
|
249 |
|
250 | - Introduced a new option `cacheSignatureGenerator` to handle use cases such
|
251 | as [GH-35]
|
252 |
|
253 | ## 2.0.5
|
254 |
|
255 | - Now using [mkdirp](https://github.com/substack/node-mkdirp) for creating the
|
256 | temp directory to support nested ones
|
257 |
|
258 | ## 2.0.4
|
259 |
|
260 | - Fixed an issue where the cache was not being utilized on node v0.10 (since
|
261 | `fs.statSync` doesn't exist with that name there) - thanks to [@XVincentX]
|
262 |
|
263 | ## 2.0.2
|
264 |
|
265 | - Fixed an issue that was causing loaders running in foreground to not receive
|
266 | the compiler options
|
267 |
|
268 | ## 2.0.1
|
269 |
|
270 | - Package in NPM is now compact
|
271 |
|
272 | ## 2.0.0
|
273 |
|
274 | - Pitching loader support
|
275 | - More complete loader API support
|
276 | - More convenient configuration interface
|
277 |
|
278 | ## 1.1.4
|
279 |
|
280 | - Fixed an issue where the cache was being improperly invalidated due to
|
281 | `cacheContext` not being stored properly (refs GH-17, thanks to @blowery)
|
282 |
|
283 | ## 1.1.3
|
284 |
|
285 | - Fixed an issue where the initial cache was not being saved properly
|
286 |
|
287 | ## 1.1.2
|
288 |
|
289 | - Fixed an issue on old node versions (0.10) with the EventEmitter API (GH-10)
|
290 | - Fixed an issue that was breaking the compiler if an invalid `threads` option
|
291 | was passed (evaluating to `NaN`)
|
292 |
|
293 | ## 1.1.1
|
294 |
|
295 | - Unrecognized and invalid config parameters will now cause the process to
|
296 | abort
|
297 | - The active version is logged on launch
|
298 |
|
299 | ## 1.1.0
|
300 |
|
301 | - Now supporting basic webpack loaders
|
302 | - Dropped the `transformer` parameter as it's no longer needed
|
303 | - `cache` now defaults to `true`
|
304 | - Now using a forking model utilizing node.js's `process.fork()` for cleaner
|
305 | threading code
|
306 |
|
307 | ## 1.0.2
|
308 |
|
309 | - Loader will now accept IDs that aren't just numbers
|