UNPKG

10.4 kBMarkdownView Raw
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
48Maintenance release for stripping down the built package to include only
49the source files and to exclude transient/development-specific files. Refs
50GH-205, thanks to @filipesilva.
51
52## 4.0.0
53
54Breaking release with two primary changes:
55
56First, this release contains a fix for a long-standing issue on Windows
57systems where the worker processes would hang indefinitely.
58
59Second, the caching functionality has been removed[1]. Users relying on the
60caching functionality may want to consider using the dedicated
61[cache-loader](https://github.com/webpack-contrib/cache-loader) but please
62keep in mind that this is not officially supported or endorsed by HappyPack
63and 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
81Fixed bug around the use of `process.send()` that was causing a hang on
82Windows with sufficiently large number of modules (and message length.)
83
84The following parse (on Linux) shows the penalty in buffered vs non-buffered
85modes and implementations:
86
87elapsed (ms) | buffering | mean (ms) | penalty (ms)
88------------ | --------- | --------- | ------------
8922211 | none
9021816
9122572
9221179
9321035 | | 21762.6 | 0
9421723 | basic
9522585
9623372
9722500
9822693 | | 22574.6 | 812
9924865 | async.queue
10023010
10122717
10223530
10323732 | | 23570.8 | 1808
10421363 | basic + process.nextTick
10522220
10621901
10721871
10822306 | | 21932.2 | 170
10923349 | basic (again)
11022043
11121904
11223435
11323508 | | 22847.8 | 1085
11422735 | basic + process.nextTick (again)
11521793
11622412
11721900
11822656 | | 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
172This release, although it's a major one, was mostly concerned with internal
173changes and improvements to how the plugin worked. Most side-effects and global
174state has been eliminated, which should hopefully result in fewer surprises
175when 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
200register 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