UNPKG

44.2 kBMarkdownView Raw
1# 17.0.1
2* Use `hasown` instead of `has`. ([4b1a5dc](https://github.com/browserify/browserify/commit/4b1a5dc0db56263b38dc98e155fb1908e810c1a9))
3* Use `String.prototype.slice` instead of `String.prototype.substr`. ([#2036](https://github.com/browserify/browserify/pull/2036))
4* Support relative paths in the `noParse` option. ([#2080](https://github.com/browserify/browserify/pull/2080))
5
6# 17.0.0
7* Upgrade events to v3.x. EventEmitter instances now have an `off()` method. `require('events').once` can be used to react to an event being emitted with `async`/`await` syntax. ([#1839](https://github.com/browserify/browserify/pull/1839))
8* Upgrade path-browserify to v1.x. ([#1838](https://github.com/browserify/browserify/pull/1838))
9* Upgrade stream-browserify to v3.x. `require('stream')` now matches the Node.js 10+ API. ([#1970](https://github.com/browserify/browserify/pull/1970))
10* Upgrade util to v0.12. Most notably, `util.promisify` and `util.callbackify` are finally available by default in browserify. ([#1844](https://gihub.com/browserify/browserify/pull/1844))
11* Add JSON syntax checking. Syntax errors in `.json` files will now fail to bundle. ([#1700](https://github.com/browserify/browserify/pull/1700))
12
13# 16.5.2
14
15Upgrade browser-resolve to v2.
16
17https://github.com/browserify/browserify/pull/1973
18
19# 16.5.1
20
21Remove deprecated `mkdirp` version in favour of `mkdirp-classic`.
22
23https://github.com/browserify/browserify/commit/00c913fa345dbb7f612bdad6b4acc91c706e98b2
24
25Pin dependencies for Node.js 0.8 support.
26
27https://github.com/browserify/browserify/pull/1939
28
29# 16.5.0
30
31Support custom name for `"browser"` field resolution in `package.json` using the `browserField` option.
32
33https://github.com/browserify/browserify/pull/1918
34
35# 16.4.0
36
37Upgrade stream-http to v3. This version drops support for IE10 and below.
38
39https://github.com/browserify/browserify/pull/1916
40
41# 16.3.0
42
43add empty stub for the `http2` builtin module.
44
45https://github.com/browserify/browserify/pull/1913
46
47update license text to remove references to code that is no longer included.
48
49https://github.com/browserify/browserify/pull/1906
50
51add more tests for folder resolution.
52
53https://github.com/browserify/browserify/pull/1139
54
55# 16.2.3
56
57add empty stub for the `inspector` builtin module.
58
59https://github.com/browserify/browserify/pull/1854
60
61change the "browser" field link to the browser-field-spec repo instead of the old gist.
62
63https://github.com/browserify/browserify/pull/1845
64
65# 16.2.2
66
67Remove some extraneous files from the published package.
68
69# 16.2.1
70
71Fix relative `--external` paths on Windows.
72
73https://github.com/browserify/browserify/pull/1704
74
75Fix tests to work on Windows, and add Appveyor CI for Windows testing.
76
77https://github.com/browserify/browserify/pull/1819
78
79# 16.2.0
80
81update the browser versions of `vm-browserify` and `string_decoder`.
82
83`string_decoder` updates to the Node 8+ API.
84`vm-browserify` replaces an unlicensed dependency by an MIT one.
85
86https://github.com/browserify/browserify/pull/1829
87
88# 16.1.1
89
90add empty stub for the `perf_hooks` builtin module.
91
92https://github.com/browserify/browserify/pull/1815
93
94# 16.1.0
95
96add `bare` and `node` options to the API, same as the `--bare` and `--node` CLI arguments.
97
98https://github.com/browserify/browserify/pull/1804
99
100# 16.0.0
101
102add `--preserve-symlinks` option from Node 6.3
103
104https://github.com/browserify/browserify/pull/1742
105https://github.com/browserify/browserify/pull/1801
106
107update the browser version of `events` to 2.0.0—this version adds methods like `prependListener` that were introduced in recent node versions, but it is also twice the size of events v1.x (2KB instead of 1KB).
108
109https://github.com/browserify/browserify/pull/1803
110
111Dynamically calculate `__dirname` and `__filename` when `--node` is passed
112
113https://github.com/browserify/browserify/pull/1725
114
115upgrade module-deps, see https://github.com/browserify/module-deps/releases/tag/v6.0.0
116
117https://github.com/browserify/browserify/commit/e5e1ec8799f1007a56118ae46646e0048385ed84
118
119# 15.2.0
120
121create parent directories if they do not exist when `--outfile /x/y/z/bundle.js` is used
122
123https://github.com/browserify/browserify/pull/995
124
125add regression test for object rest spread syntax
126
127https://github.com/browserify/browserify/pull/1798
128
129# 15.1.0
130
131restore support for node `< 4.0` until we can decide on a support schedule
132
133# 15.0.0
134
135fixed repository url in package.json.
136
137https://github.com/browserify/browserify/commit/5ec19eed48a5f46cb48d44be8ffc2f6bfb73fbfb
138
139update `module-deps` to 5.0.0, which enables requiring modules in backtick-enclosed strings.
140
141https://github.com/browserify/browserify/pull/1785
142
143dropped testing in node 0.10 and 0.12, set supported node versions to `>=4`
144
145https://github.com/browserify/browserify/pull/1743
146https://github.com/browserify/browserify/pull/1793
147
148add support for passing arrays to the `exclude` and `ignore` methods.
149
150https://github.com/browserify/browserify/pull/1769
151
152# 14.5.0
153
154update `os-browserify` to 0.3.0, which adds a shim for node.js's `os.homedir` method.
155
156https://github.com/browserify/browserify/pull/1767
157
158update `browserify-zlib` to 0.2.0, which adds support for dictionaries.
159
160https://github.com/browserify/browserify/pull/1733
161
162# 14.4.0
163
164update `string_decoder` to 1.0.0, which matches the latest node.js behavior more closely.
165
166https://github.com/substack/node-browserify/pull/1714
167
168# 14.3.0
169
170update `https-browserify` to 1.0.0, which matches node.js behavior more closely.
171
172- throw exception if non-https URL is passed to `https.request` or `https.get`
173- support passing string URL as first argument to `https.request` and `https.get`
174
175https://github.com/substack/node-browserify/pull/1710
176
177# 14.2.0
178
179adds a --transform-key flag to the command-line tool
180
181https://github.com/substack/node-browserify/pull/1709
182
183# 14.1.0
184
185writes to a temp outfile until success
186
187Previously, browserify would overwrite output files when an error occurs.
188
189https://github.com/substack/node-browserify/pull/1673
190https://github.com/substack/node-browserify/issues/899
191
192# 14.0.0
193
194Updates the version of the buffer package, which drops support for IE8-10.
195
196buffer v5 removes the `Object` implementation and relies on a single,
197fast Typed Array (`Uint8Array`) implementation, greatly simplifying the
198maintanence of the buffer package.
199
200If IE8-10 support is critical to your web app, you can continue to rely on
201browserify v13, or see the PR for other workarounds.
202
203https://github.com/substack/node-browserify/pull/1678
204
205# 13.3.0
206
207updates the version for the assert package
208
209https://github.com/substack/node-browserify/pull/1611
210
211# 13.2.0
212
213allow configuring transformKey from module-deps
214https://github.com/substack/node-browserify/pull/1670
215
216# 13.1.1
217
218boost performance by memoizing calls to path.relative()
219
220https://github.com/substack/node-browserify/pull/1544
221
222# 13.1.0
223
224exposes `opts.dedupe` and `--no-deupe` to optionally turn off deduping behavior:
225[#1581](https://github.com/substack/node-browserify/pull/1581)
226
227# 13.0.1
228
229## Internal
230
231[#1552](https://github.com/substack/node-browserify/pull/1552), [#1555](https://github.com/substack/node-browserify/pull/1555): Use native `Array.isArray` and drop `isarray` dep. ([@kt3k](https://github.com/kt3k))
232
233# 13.0.0
234
235This release bumps the [`buffer`](https://www.npmjs.com/package/buffer) dependency
236to v4, which has one possible breaking change:
237
238- The `buffer.toArrayBuffer()` method on `Buffer` instances has been removed.
239
240(This is probably not a problem for 99.9% of users.)
241
242This API was added in node v0.11.8 and
243[removed before v0.12 was released](https://github.com/nodejs/node-v0.x-archive/issues/7609#issuecomment-42903457).
244It was added to browserify's `buffer` implementation but was never removed when v0.12
245 was released. `buffer` v4 removes it so we have full parity with node.js.
246
247Going forward, to get an `ArrayBuffer` from a node.js-style `Buffer`, users should
248just use `buffer.buffer`. This works because `Buffer` is a subclass of `Uint8Array`
249in both the browser and node.js (since v3).
250
251On the plus side, this release also includes:
252
253- Performance improvements to `buffer` that
254[increase the speed](https://github.com/feross/buffer/pull/92) of some buffer
255methods by as much as 30%!
256
257# 12.0.2
258
259normalizes module paths on windows to consistently use `/`
260
261https://github.com/substack/node-browserify/pull/1424#issuecomment-170143099
262
263# 12.0.1
264
265adds the previously failing tests and a small change necessary for transforms to
266be applied properly for symlinked packages
267
268https://github.com/substack/node-browserify/pull/1392
269
270# 12.0.0
271
272Node support changes: now testing against the latest node (currently 4.2.1).
273node 0.8 is no longer supported, and iojs isn't actively tested.
274
275Stream3 everywhere! Everything has been updated to use streams3.
276
277Sourcemaps charset now uses an `=` instead of a `:`. This fixes certain issues
278with Chinese characters in sourcemaps. See #753.
279
280module-deps has been updated to fix root transforms on symlinked modules. See
281https://github.com/substack/module-deps/pull/99.
282
283stream-http, the module that provides `http` support, dropped IE8 support. If
284you depend on this, see https://github.com/jhiesey/stream-http#ie8-note.
285
286Removed `builtins` and `commondir` – both unused dependencies.
287
288# 11.2.0
289
290When `bundleExternal` is set to `false`, `process` and `buffer` are now correctly excluded. Also, using `--igv` via the CLI now works. That also means that `--bare` and `--node` actually insert `__filename` and `__dirname`.
291
292https://github.com/substack/node-browserify/pull/1361
293
294# 11.1.0
295
296adds a `'.'` to extensions if it wasn't added
297
298https://github.com/substack/node-browserify/pull/1380
299
300# 11.0.1
301
302The callback form of bundle() uses the returned output stream instead of the
303pipeline so that the `'end'` event will fire on the bundle instance.
304
305https://github.com/substack/watchify/pull/249#issuecomment-126061169
306
307# 11.0.0
308
309## streams3
310
311The [`readable-stream`](https://npmjs.com/package/readable-stream) dependency was updated to `^2.0.0`. This package is inserted into bundles as `require('stream')`. Bundles will now get the latest streams implementation from io.js/node.js core, instead of an old version from node.js 0.11.x. Go forth and stream ALL THE DATA without fear!
312
313## shiny new HTTP package
314
315[John Hiesey](https://github.com/jhiesey) rewrote the [http-browserify](https://npmjs.org/package/http-browserify) package
316to create [stream-http](https://npmjs.org/package/stream-http), an implemention of `http` that supports streaming in modern browsers. Before v11.0.0, in most situations when you used `http.get` or `http.request`, the entire request would buffer in memory until the download was complete, and a single `'data'` event was emitted with the entire response as a string.
317
318`stream-http` uses the [Fetch API](https://fetch.spec.whatwg.org/) and various browser-specific XHR extensions to make binary streaming http requests work in as many browsers as possible.
319
320The following browsers support true streaming, where only a small amount of the request has to be held in memory at once:
321
322* Chrome >= 43 (using the `fetch` api)
323* Firefox >= 9 (using `moz-chunked-arraybuffer` responseType with XHR)
324
325The following browsers support pseudo-streaming, where the data is available before the request finishes, but the entire response must be held in memory:
326
327* Safari >= 5
328* IE >= 10
329* Most other Webkit-based browsers, including the default Android browser
330
331Older browsers will work, without streaming support. There is no support for IE6 or IE7.
332
333Compared to `http-browserify`, it is not necessary to set `options.responseType`. The `responseType` property of the XHR object will be set automatically depending on what features are detected in the browser (although see `options.mode` in the [readme](https://github.com/jhiesey/stream-http) to see how you can optimize this choice manually).
334
335The `response` is a streams3 stream, so all data is passed as `Buffer`s, unlike the variable types provided by the `'data'` event in `http-browserify`. This behavior tries to mimic the node core `http` module as closely as possible.
336
337* [#1327](https://github.com/substack/node-browserify/pull/1327)
338
339If you're brave, go ahead and give v11.0.0 a try today!
340
341# 10.2.6
342
343uses the non-sync version of fs.realpath
344
345# 10.2.5
346
347fixes an issue with symlinked files executing multiple times
348
349https://github.com/substack/node-browserify/issues/1063
350https://github.com/substack/node-browserify/pull/1318
351
352# 10.2.4
353
354fixes requiring an entry from another entry
355
356remove unused dep "deep-equal" and unused file "lib/_exclude.js"
357
358https://github.com/substack/node-browserify/pull/1268
359
360# 10.2.3
361
362fixes an errant space in the `--no-browser-field` flag alias
363that kept it from working
364
365https://github.com/substack/node-browserify/issues/1286
366
367# 10.2.2
368
369fix tests for tap@^1.1.0 (and update tap)
370
371https://github.com/substack/node-browserify/pull/1276
372
373# 10.2.1
374
375housekeeping - removed unused code
376
377https://github.com/substack/node-browserify/pull/1273
378
379# 10.2.0
380
381remove unnecessary "isDedupe" json check. this was a hack-fix for watchify <=2.4.
382
383https://github.com/substack/node-browserify/pull/1244
384
385fixes for the "noParse" path matcher.
386
387https://github.com/substack/node-browserify/pull/1257
388
389add syntax check cache. this speeds up rebuilds (like when using watchify).
390
391https://github.com/substack/node-browserify/pull/1253
392
393update to browser-pack@^5.0.0 - includes several fixes related to source maps.
394
395https://github.com/substack/node-browserify/pull/1259
396
397# 10.1.3
398
399Replace jsonstream with JSONStream
400
401https://github.com/substack/node-browserify/pull/1252
402
403# 10.1.2
404
405Replace JSONStream with jsonstream
406Update deps to avoid jsonstream npm case problems
407
408https://github.com/substack/node-browserify/pull/1247
409https://github.com/substack/node-browserify/commit/1ca71e23
410
411# 10.1.1
412
413ensures that entry paths are always full paths
414
415https://github.com/substack/node-browserify/pull/1248
416
417# 10.1.0
418
419adds `--no-browser-field` and `opts.browserField = false` behavior to turn off
420the package.json browser field. This is useful if you want to make a bundle with
421a target of node or some environment with shimmed node primitives.
422
423A new alias `--node` sets `--no-browser-field` and `--bare`.
424
425https://github.com/substack/node-browserify/pull/1240
426
427# 10.0.0
428
429## Possibly Breaking Change
430The ‘process’ dependency was updated to ~0.11.0, this module is inserted into bundles as the ‘process’ global/dependency.
431Previously, an unhandled error thrown in a ‘process.nextTick’ task would prevent any subsequent tasks from running, forever.
432The task queue now recovers from this condition, but may do so on a future browser tick.
433As part of this update, ‘process.nextTick’ now accepts variadic arguments, passed to the task, added to io.js in 1.8.1.
434
435* [#1231](https://github.com/substack/node-browserify/pull/1231)
436* [defunctzombie/node-process#38](https://github.com/defunctzombie/node-process/pull/38)
437* [iojs/io.js#1077](https://github.com/iojs/io.js/pull/1077)
438
439## Other changes
440
441* Escapes JavaScript-unsafe characters from JSON. [#1211](https://github.com/substack/node-browserify/pull/1211)
442* Removes ‘-v’ shortcut for ‘--version’ (conflicted with watchify) [#1222](https://github.com/substack/node-browserify/pull/1222)
443* Updated ‘defined’, ‘punycode’, ‘module-deps’, and ‘xtend’ dependencies to reduce install size [#1230](https://github.com/substack/node-browserify/pull/1230)
444
445# 9.0.8
446
447makes `.require({ expose: 'name' })` and `require('name')` work at the same time
448
449https://github.com/substack/node-browserify/issues/850
450https://github.com/substack/node-browserify/pull/1202
451
452# 9.0.7
453
454fixes an issue with catching error events on the b.bundle() stream
455
456https://github.com/substack/node-browserify/issues/1194
457https://github.com/substack/node-browserify/pull/1195
458
459# 9.0.6
460
461republishing 9.0.5 in an attempt to satisfy npm.
462
463# 9.0.5
464
465sets the stream returned by bundle() to be readable-only
466
467https://github.com/substack/node-browserify/pull/1187#issuecomment-89044008
468
469# 9.0.4
470
471handles the colon better for drive paths and improves the test suite for windows
472users
473
474https://github.com/substack/node-browserify/pull/1182
475https://github.com/substack/node-browserify/pull/1183
476
477# 9.0.3
478
479fixes a problem with deduping for json files.
480
481This caused problems for running bundle() multiple times on the same instance
482with caching turned on, which people reported encountering using watchify.
483
484https://github.com/substack/node-browserify/issues/1101
485https://github.com/substack/watchify/issues/143
486
487# 9.0.2
488
489fixes a bug where transforms in `opts.transform` were getting run twice
490
491https://github.com/substack/node-browserify/issues/1124
492https://github.com/substack/node-browserify/pull/1128
493
494# 9.0.1
495
496fixes exposed files persisting across bundles
497
498https://github.com/substack/node-browserify/pull/1030
499
500# 9.0.0
501
502updates browser-pack which uses umd 3.0.0.
503This sligtly changes how `--standalone $name` works.
504
505https://github.com/substack/browser-pack/pull/49
506https://github.com/substack/node-browserify/pull/1105
507
508Also some tidying up around handling expose that module-deps can do now:
509
510https://github.com/substack/node-browserify/pull/1077
511
512and some fixes to regressions involving the `'package'` event:
513
514https://github.com/substack/node-resolve/issues/69
515
516Upstream changes in resolve/browser-resolve mean that `require('foo/bar')` works
517better with the package.json browser field. You can do something like:
518
519``` json
520{
521 "browser": { "./bar": "whatever.js" }
522}
523```
524
525# 8.1.3
526
527uses / instead of \ for source map url separators on windows
528https://github.com/substack/node-browserify/pull/1096
529
530# 8.1.2
531
532resolves mappings from the browser field for externals
533
534https://github.com/substack/node-browserify/pull/1100
535
536# 8.1.1
537
538fixes an issue with resolving exposed packages relative to the basedir
539
540https://github.com/substack/node-browserify/pull/1059
541https://github.com/substack/node-browserify/issues/1039
542https://github.com/daiweilu/browserify-broken-require
543
544# 8.1.0
545
546use assert@1.3, which fixes a bug in assert.deepEqual related to argument ordering,
547and ensures assert.deepEqual continues working in Chrome 40 and Firefox 35.
548
549use process@0.10, which adds process.umask() and a faster process.nextTick()
550implementation.
551
552https://github.com/substack/node-browserify/pull/1018
553https://github.com/substack/node-browserify/pull/1041
554
555# 8.0.3
556
557passes opts.debug through to insert-module-globals so that is can insert inline
558source maps for its modifications
559
560# 8.0.2
561
562ensures that transforms always execute in the order they were added
563
564https://github.com/substack/node-browserify/pull/1043
565
566# 8.0.1
567
568fixes some file path leaks in deduped deps
569
570https://github.com/substack/node-browserify/pull/994
571https://github.com/substack/node-browserify/issues/951
572
573# 8.0.0
574
575In previous releases, the deduping logic was over-zealous about how it handled
576module references for duplicates. The prior behavior would detect when the
577dependency tree of a module matched an existing module in addition to having the
578exact same source code to share an instance. This was originally designed to
579support libraries like threejs that internally use `instanceof` checks that
580don't usually work very well across multiple packages. This feature didn't pan
581out and didn't work very well in practice.
582
583Later, a better way of deduping emerged after some unrelated tweaks to
584browser-pack to support source introspection for webworkers. The reflection form
585of deduping using implicit arguments is now the only kind.
586
587The deduping instance feature resulted in this bug:
588https://github.com/substack/node-browserify/issues/1027
589which created very surprising results when duplicate files were in use.
590
591# 7.1.0
592
593uses the new buffer@3.0.0, which passes node's own buffer test suite
594
595https://github.com/substack/node-browserify/pull/1040
596
597# 7.0.3
598
599allows modules to be bundled with local paths and exposed at the same time
600
601https://github.com/substack/node-browserify/pull/1033
602
603# 7.0.2
604
605fixes the global transform getting added each re-bundle
606
607https://github.com/substack/node-browserify/issues/1026
608
609# 7.0.1
610
611fixes rebundling (used by watchify) when transforming
612
613https://github.com/substack/node-browserify/issues/1012
614
615also fixes https://github.com/substack/node-browserify/issues/1015
616
617# 7.0.0
618
619Global transforms are now resolved to an absolute path before walking files.
620This fixes some bugs with local module versions taking precedence over global
621transforms and unresolvable global transforms spanning system directories.
622
623This is a small breaking change since now transform objects live in the pipeline
624between the record and deps phases. This should only affect programs that expect
625records in the pipeline to only contain file objects.
626
627# 6.3.4
628
629fixes a bug setting placeholder filenames on stream inputs to be properly unique
630
631# 6.3.3
632
633fixes an issue with the expose property when opts.fullPaths is enabled
634
635This issue commonly crops up in watchify.
636
637https://github.com/substack/node-browserify/pull/991
638https://github.com/substack/node-browserify/issues/850
639
640# 6.3.2
641
642updates regexps that test for absolute and relative paths to work better on
643windows
644
645https://github.com/substack/node-browserify/pull/948
646
647# 6.3.1
648
649fixes ignoreTransform for the case where transforms were given in package.json
650as an array
651
652https://github.com/substack/node-browserify/pull/966
653
654# 6.3.0
655
656uses noParse for better parity with module-deps
657
658https://github.com/substack/node-browserify/pull/954
659
660# 6.2.0
661
662fixes #!shebang syntax when --bare is in effect by adding an unshebang phase to
663the pipeline
664
665https://github.com/substack/node-browserify/issues/943
666
667# 6.1.2
668
669fixes the behavior for multiple external bundles
670
671https://github.com/substack/node-browserify/issues/933
672
673# 6.1.1
674
675fixes a circular dependency issue with readable-stream
676
677https://github.com/substack/node-browserify/pull/964
678https://github.com/substack/node-browserify/issues/963
679
680# 6.1.0
681
682allows transforms to be ignored throughout the entire bundle
683
684https://github.com/substack/node-browserify/pull/945
685
686# 6.0.3
687
688fixes a bug where module insert-module-globals would trigger too soon and
689conflict with other transforms
690
691https://github.com/substack/node-browserify/issues/867
692https://github.com/substack/node-browserify/issues/895
693https://github.com/substack/node-browserify/issues/855
694
695# 6.0.2
696
697upgrades process to 0.8.0
698https://github.com/substack/node-browserify/pull/906
699
700# 6.0.1
701
702respects opts.expose in require()
703https://github.com/substack/node-browserify/pull/907
704
705# 6.0.0
706
707resolves source map maths relative to the base url. This should help with more
708reproducible builds.
709
710https://github.com/substack/node-browserify/pull/923
711
712Version 6 is a tiny but breaking change to how source map paths work.
713
714Now all source map paths are relative by default. This makes it easier to have
715deterministic debug builds across different systems and directories. If
716browserify is installed in a project-local directory, all the source map paths
717will be self-contained and relative against that location in node_modules.
718
719# 5.13.1
720
721bails early if opts.basedir is not the correct type
722https://github.com/substack/node-browserify/pull/927
723
724# 5.13.0
725
726exposes global browserify options to transforms under opts._flags
727https://github.com/substack/node-browserify/pull/910
728
729# 5.12.2
730
731fixes the array form of b.external()
732https://github.com/substack/node-browserify/issues/930
733
734# 5.12.1
735
736dedupe deps when fullPaths is on
737https://github.com/substack/node-browserify/pull/917
738and fixes the crypto tests
739
740# 5.12.0
741
742adds back the array form for add() and require(), with extra places to add
743options
744
745# 5.11.2
746
747fixes ignore for relative paths
748in https://github.com/substack/node-browserify/issues/896
749
750# 5.11.1
751
752fixes exports across resets, which caused issues for watchify with exports
753https://github.com/substack/node-browserify/pull/892
754
755# 5.11.0
756
757adds an implicit dependency on the original module during dedupe
758https://github.com/substack/node-browserify/pull/880
759
760# 5.10.1
761
762fixes the command-line client to properly ignore paths that don't match a glob
763https://github.com/substack/node-browserify/pull/866
764
765# 5.10.0
766
767adds back support for `.external(b)` on a browserify instance `b`
768that was dropped on the v5 refactor
769
770# 5.9.3
771
772buffers the record pipeline phase to start outputting after the first tick
773so that user plugins can capture and modify recorder output
774
775# 5.9.2
776
777fixes a bug with using --ignore to exclude node_modules packages on the command-line
778
779https://github.com/substack/node-browserify/pull/845
780
781# 5.9.1
782
783improves the detection for --ignore
784
785# 5.9.0
786
787fixes bug with builtins that load json files (the 'constants' module),
788new 'json' pipeline label
789
790https://github.com/substack/module-deps/issues/46
791
792# 5.8.0
793
794allow optional extensions in bin/args
795
796# 5.7.0
797
798re-instates transforms after a reset and fixes exposing the transform events
799properly
800
801# 5.6.1
802
803makes stream entry files deterministic
804
805# 5.6.0
806
807adds 'package' events from module-deps when a package.json file is read
808
809# 5.5.0
810
811adds back the `'bundle'` event and copies over options correctly to reset()
812
813# 5.4.2
814
815adds a note about derequire in standalone mode to the readme
816
817# 5.4.1
818
819fixes an error with basedir resolving plugins from names
820
821# 5.4.0
822
823also allows opts.plugin from the constructor like transform
824
825# 5.3.0
826
827passes `.file` on stream inputs through to transforms
828https://github.com/substack/node-browserify/issues/744
829
830# 5.2.1
831
832sets require() for streams to not just be entry files
833
834# 5.2.0
835
836upgrades crypto-browserify to v3
837
838# 5.1.1
839
840updates --list to always print file paths
841
842# 5.1.0
843
844adds back `.plugin()` which was mistakenly omitted
845
846# 5.0.8
847
848fixes using debug and standalone at the same time
849https://github.com/substack/node-browserify/issues/750
850
851# 5.0.7
852
853fixes command-line versions of -u and -x
854https://github.com/substack/node-browserify/issues/821
855
856# 5.0.6
857
858test for --bare
859
860# 5.0.5
861
862fix for detectGlobals, --bare
863https://github.com/substack/node-browserify/issues/803
864
865# 5.0.4
866
867fixes --no-bundle-external with globals
868
869https://github.com/substack/node-browserify/issues/828
870
871# 5.0.3
872
873upgrades insert-module-globals to fix
874https://github.com/substack/node-browserify/issues/834
875
876# 5.0.2
877
878fixes the changelog link https://github.com/substack/node-browserify/pull/835
879
880# 5.0.1
881
882adds an untracked test
883
884# 5.0.0
885
886At a glance:
887
888* extensible internal labeled-stream-splicer pipeline
889* bundle() - no longer accepts `opts`, callback gets a buffer
890* b.deps(), b.pack(), opts.pack, opts.deps are gone
891* can call bundle() multiple times on the same instance
892* a better --noparse matcher
893* id labeling integer index based instead of hash based
894* derequire removed for performance reasons
895* .external(bundle) has been removed (for now)
896* semicolon at end of output
897* hashing is gone so `expose: true` or explicit expose id is required for doing
898multi-export bundles
899
900Version 5 is a big rearranging of browserify internals with more places for
901external code to hook into the build pipeline.
902
903These changes are mostly aligned around the theme of making it easier for
904external code to interface with browserify internals in a less hacky way.
905
906## pipeline
907
908Now the core of browserify is organized into a
909[labeled-stream-splicer](https://npmjs.org/package/labeled-stream-splicer)
910pipeline. This means that user code and plugins can hook into browserify by
911pushing themselves onto the pipeline at a label:
912
913``` js
914var browserify = require('browserify');
915var through = require('through2');
916var bundle = browserify();
917
918bundle.pipeline.get('deps').push(through.obj(function (row, enc, next) {
919 console.log('DEP:', row.id);
920 this.push(row);
921 next();
922}));
923```
924
925User code can remove existing transforms or add its own hooks. These are the
926labeled sections you can get a handle on with `bundle.pipeline.get()`
927
928* `'record'` - save inputs to play back later on subsequent `bundle()` calls
929* `'deps'` - [module-deps](https://npmjs.org/package/module-deps)
930* `'unbom'` - remove byte-order markers
931* `'syntax'` - check for syntax errors
932* `'sort'` - sort the dependencies for deterministic bundles
933* `'dedupe'` - remove duplicate source contents
934* `'label'` - apply integer labels to files
935* `'emit-deps'` - emit `'dep'` event
936* `'debug'` - apply source maps
937* `'pack'` - [browser-pack](https://npmjs.org/package/browser-pack)
938* `'wrap'` - apply final wrapping, `require=` and a newline and semicolon
939
940Because there is now a proper pipeline, `opts.pack`, `opts.deps`, `b.deps()`,
941and `b.pack()` are removed.
942
943## bundle()
944
945Big changes have been made to the `bundle()` function. All options have been
946moved out of the `bundle(opts)` form and into the browserify constructor. Before
947there was an unclear split between which arguments went into which function.
948
949You can now call `bundle()` multiple times on the same instance, even in
950parallel. This will greatly simplify the caching system under watchify and will
951fix many long-standing bugs.
952
953The callback to `bundle(cb)` is now called with `cb(err, buf)` instead of
954`cb(err, string)` as before.
955
956## labeling
957
958The former hashing system is removed, in favor of file paths rooted at the
959`opts.basedir`, or the cwd.
960
961This removal means that browserify can be much more consistent about applying
962integer ids, which avoids exposing system paths in bundle output.
963
964Hashes are used internally for deduping purposes, but they operate on the
965source content only.
966
967## others
968
969The matching logic in the `--noparse` feature is greatly improved.
970
971derequire has been taken out of core, which should speed up `--standalone`.
972
973# 4.2.3
974
975reverts 4.2.2 due to breaking some existing use-cases
976
977# 4.2.2
978
979fixes a bug applying transforms to symlinked files by resolving the realpath
980first https://github.com/substack/node-browserify/pull/831
981
982# 4.2.1
983
984SECURITY NOTICE
985
986Make sure your installation of browserify is using syntax-error@1.1.1 or
987later. there was a security vulnerability where a malicious file could
988execute code when browserified.
989
990The vulnerability involves breaking out of `Function()`, which was used to
991check syntax for more informative errors. In node 0.10, `Function()` seems
992to be implemented in terms of `eval()`, so malicious code can execute even
993if the function returned by `Function()` was never called. node 0.11 does
994not appear to be vulnerable.
995
996Thanks to Cal Leeming [cal@iops.io]
997for discovering and disclosing this bug!
998
999# 4.2.0
1000
1001upgrades http-browserify, crypto-browserify, and sets more versions to float
1002with ^ semvers
1003
1004# 4.1.11
1005
1006fixes a bug with transform argument handling https://github.com/substack/node-browserify/pull/795
1007
1008# 4.1.10
1009
1010upgrades browser-resolve to get opts.path fixes https://github.com/defunctzombie/node-browser-resolve/pull/43
1011
1012# 4.1.9
1013
1014upgrades resolve to fix relative NODE_PATH paths https://github.com/substack/node-resolve/pull/46
1015
1016# 4.1.8
1017
1018bumps the module-deps version to get an ordering bugfix https://github.com/substack/module-deps/pull/39 https://github.com/substack/node-browserify/pull/774
1019
1020# 4.1.7
1021
1022fixes ignoreMissing when set in the constructor https://github.com/substack/node-browserify/pull/785
1023
1024# 4.1.6
1025
1026emits the 'id' event on the correct instance https://github.com/substack/node-browserify/pull/780
1027
1028# 4.1.5
1029
1030added this document
1031
1032# 4.1.4
1033
1034fixes a bug in `ie<=8` support for querystring https://github.com/substack/node-browserify/issues/764
1035
1036# 4.1.2
1037
1038upgrades umd to fix some issues with --standalone https://github.com/substack/node-browserify/pull/714
1039
1040# 4.1.1
1041
1042makes deps() behave more like bundle() https://github.com/substack/node-browserify/issues/757 and fixes global transform precedence https://github.com/substack/node-browserify/issues/759
1043
1044# 4.1.0
1045
1046upgrades the version of buffer to ^2.3.0
1047
1048# 4.0
1049
1050Here are the new breaking changes in browserify v4. Most users should be unaffected.
1051
1052## readable-stream
1053
1054`require('stream')` is now using [readable-stream](https://npmjs.org/package/readable-stream) (but the classic-mode shim persists in stream-browserify just like in node core). This should result in much smaller files for all modules using a similar-enough version of readable-stream as browserify itself. Other modules should be relatively unaffected.
1055
1056## removed .expose()
1057
1058Removal of the previously-deprecated and obscure `bundle.expose()`.
1059
1060## took out implicit reading from stdin
1061
1062Previously if you invoked the browserify command without any entry files as arguments and stdin was a tty, stdin would be implicitly added as an entry file. This feature was causing problems so it has been removed. https://github.com/substack/node-browserify/issues/724#issuecomment-42731877
1063
1064## more!
1065
1066In the run-up to the 4.0, [module-deps](https://npmjs.org/package/module-deps) got an extensive rewrite with minimal test changes. Mostly it was just getting really messy because it was a giant ball-of-mud closure instead of a more straightforward prototype-based implementation with more clearly-defined methods.
1067
1068The module-deps rewrite was triggered by [system paths showing up in build output](https://github.com/substack/node-browserify/issues/675) but was fixed in 3.46.1. The solution actually didn't end up needing changes in module-deps as originally anticipated but module-deps was in dire need of a cleanup.
1069
1070# 3.46.1
1071
1072fixes a bug exposing the host path of the process module in the bundle output https://github.com/substack/insert-module-globals/pull/32
1073
1074# 3.46.0
1075
1076allows array arguments in b.require(), b.add(), and b.external() https://github.com/substack/node-browserify/pull/742 from @spacepluk
1077
1078# 3.45.0
1079
1080renders complete stack traces where before they were getting truncated https://github.com/substack/node-browserify/pull/741 patch from @secoif
1081
1082# 3.44.2
1083
1084slims down the dependency payload by 20M https://github.com/substack/node-browserify/pull/736
1085
1086# 3.44.1
1087
1088fixes the recursion error many people were getting https://github.com/substack/node-browserify/pull/713 Thanks to @MattMcKegg for isolating the bug!
1089
1090# 3.44.0
1091
1092upgrades module-deps to 1.10.0 to make all the packageFilter dir argument pathways are consistent
1093
1094# 3.43.0
1095
1096lets b.transform(opts, t) args to be swapped around since opts is more common as a last argument
1097
1098# 3.42.0
1099
1100passes through the dir parameter in opts.packageFilter from module-deps 1.10.0 https://github.com/substack/node-browserify/pull/731
1101
1102# 3.41.0
1103
1104has an option to disable external files, making it easier to run bundles in node for code coverage https://github.com/substack/node-browserify/pull/672
1105
1106# 3.40.4
1107
1108makes --list work again https://github.com/substack/node-browserify/pull/727
1109
1110# 3.40.3
1111
1112merges a patch for piping via stdin and --require at the same time https://github.com/substack/node-browserify/pull/728
1113
1114# 3.40.2
1115
1116upgrades module-deps to fix --list for $NODE_PATH https://github.com/substack/node-browserify/issues/726
1117
1118# 3.40.1
1119
1120upgrades module-deps to get this packageTransform bugfix https://github.com/substack/module-deps/pull/32
1121
1122# 3.40.0
1123
1124modifies the behavior of opts.builtins to be more useful and intuitive https://github.com/substack/node-browserify/pull/717
1125
1126# 3.39.0
1127
1128adds a zlib that has parity with node https://github.com/substack/node-browserify/pull/721
1129
1130# 3.38.0
1131
1132upgrades derequire which uses esprima-fb https://github.com/substack/node-browserify/pull/710
1133
1134# 3.37.2
1135
1136adds 'close' events back to the bundle stream. This should fix some issues with watchify.
1137
1138# 3.37.1
1139
1140fixes a bug with through being required in the bin/cmd.js instead of through2
1141
1142# 3.37.0
1143
1144also reverts that require('process') thing which was mistakenly briefly put in the builtins list
1145
1146# 3.37.0
1147
1148gives streams2 semantics for bundle() https://github.com/substack/node-browserify/pull/646
1149
1150# 3.36.1
1151
1152fixes a dumb bug with ^ for versions that don't work in old npm clients
1153
1154# 3.36.0
1155
1156adds require('process') and removes the path resolution for process out of insert-module-globals
1157
1158# 3.35.0
1159
1160adds an empty tls stub to the builtins list https://github.com/substack/node-browserify/issues/703
1161
1162# 3.34.0
1163
1164fixes a bug with transforms not being applied in deps() https://github.com/substack/node-browserify/pull/708
1165
1166# 3.33.1
1167
1168fixes a bug with options in --global-transform on the command-line https://github.com/substack/node-browserify/pull/705
1169
1170# 3.33.0
1171
1172fixes parsing errors while maintaining es6 support by switching to esprima-fb https://github.com/substack/node-browserify/issues/698
1173
1174# 3.32.1
1175
1176should be easier to shinkwrap and install on windows https://github.com/substack/node-browserify/pull/684
1177
1178# 3.32.0
1179
1180adds --full-path and opts.fullPath to always expand ids to full paths https://github.com/substack/node-browserify/pull/668#issuecomment-36586786
1181
1182# 3.31.2
1183
1184fixes a bug in the subarg argument parsing for multiple transforms https://github.com/substack/node-browserify/issues/678
1185
1186# 3.31.1
1187
1188uses process.cwd() as the default rebase target instead of commondir https://github.com/substack/node-browserify/pull/669#issuecomment-36078282
1189
1190# 3.31.0
1191
1192merges https://github.com/substack/node-browserify/pull/669 which should help with more deterministic builds across systems
1193
1194# 3.30.4
1195
1196fixes parsing the --insert-global-vars argument properly https://github.com/substack/node-browserify/pull/674
1197
1198# 3.30.3
1199
1200fixes exclude globbing in the arg parser https://github.com/substack/node-browserify/pull/676
1201
1202# 3.30.2
1203
1204included a fix for --no-builtins for non-wrapped modules https://github.com/substack/node-browserify/pull/666
1205
1206# 3.30.1
1207
1208upgrades buffer for a utf8 fix https://github.com/substack/node-browserify/pull/656
1209
1210# 3.30.0
1211
1212adds globs for -u, -i, and -x https://github.com/substack/node-browserify/issues/654
1213
1214# 3.29.1
1215
1216adds relatively-resolved paths to ignored and excluded files
1217
1218# 3.29.0
1219
1220upgrades http-browserify to 1.3.1
1221
1222# 3.28.2
1223
1224now always includes the full package.json content in the 'package' event
1225
1226# 3.28.1
1227
1228fixes a bug with stream entry order https://github.com/substack/node-browserify/pull/643
1229
1230# 3.28.0
1231
1232adds plugins for doing super fancy things like factored bundle output https://github.com/substack/node-browserify#plugins
1233
1234# 3.27.1
1235
1236fixes a bug resolving transform modules when browserify is under a symlink
1237
1238# 3.27.0
1239
1240adds transform configuration in the package.json browserify.transform field https://github.com/substack/module-deps#packagejson-transformkey
1241
1242# 3.26.0
1243
1244you can pass arguments to transforms https://github.com/substack/node-browserify/blob/master/bin/advanced.txt#L67-L77
1245
1246# 3.25.2
1247
1248fixes a bug where the transform event didn't fire while IO was pending
1249
1250# 3.25.1
1251
1252fixes the transform docs
1253
1254# 3.25.0
1255
1256adds 'bundle' and 'transform' events https://github.com/substack/node-browserify#bonbundle-function-bundle-
1257
1258# 3.24.11
1259
1260upgrades derequire to 0.6.0. That should be the last piece needed for full es6 syntax support.
1261
1262# 3.24.10
1263
1264expands the documentation for the package.json browser and browserify.transform fields https://github.com/substack/node-browserify#packagejson
1265
1266# 3.24.9
1267
1268fixes generator syntax and other es6-isms in browserify https://github.com/substack/node-browserify/issues/614
1269
1270# 3.24.7
1271
1272fixes noParse, which had accidentally been disabled in the insert-module-global changes and also closes https://github.com/substack/node-browserify/issues/504
1273
1274# 3.24.6
1275
1276similar to 3.24.5, 3.24.6 fixes some error reporting propagation from the browserify command
1277
1278# 3.24.3
1279
1280fixes how require('buffer').Buffer wasn't the same as implicit Buffer https://github.com/substack/node-browserify/issues/612
1281
1282# 3.24.2
1283
1284fixes where the output stream didn't emit "close" in standalone mode https://github.com/substack/node-browserify/pull/608
1285
1286# 3.24.1
1287
1288fixes an issue where --standalone combined with expose caused a syntax error https://github.com/substack/node-browserify/issues/489
1289
1290# 3.24.0
1291
1292removes require() calls from --standalone so you can require() a standalone bundle again
1293
1294# 3.23.0
1295
1296merges this tiny fix returning `this` in noParse() https://github.com/substack/node-browserify/pull/592
1297
1298# 3.22.0
1299
1300merges https://github.com/substack/node-browserify/pull/587 which changes the source map prefix from //@ to //#
1301
1302# 3.21.0
1303
1304standardizes the module missing error formats to have filename, parent, and type === 'not found' fields
1305
1306# 3.20.1
1307
1308has a fix for the case where stdin is implicitly treated as the input stream instead of a file
1309
1310# 3.20.0
1311
13123.20.0 is out: parity with how $NODE_PATH works in node https://github.com/substack/node-browserify/issues/593
1313
1314# 3.19.1
1315
1316restores support for node 0.8 by upgrading concat-stream
1317
1318# 3.0
1319
1320A new [browserify](http://browserify.org) version is upon us, just in time for
1321the FESTIVE SEASON during which we in the northern hemisphere at mid to high
1322latitudes huddle for warmth around oxidizing hydrocarbons!
1323
1324There are 2 big changes in v3 but most code should be relatively unaffected.
1325
1326## shiny new Buffer
1327
1328[feross](https://github.com/feross) forked
1329the [buffer-browserify](https://npmjs.org/package/buffer-browserify) package
1330to create
1331[native-buffer-browserify](https://npmjs.org/package/native-buffer-browserify),
1332a `Buffer` implementation that uses `Uint8Array` to get `buf[i]` notation and
1333parity with the node core `Buffer` api without the performance hit of the
1334previous implementation and a much smaller file size. The downside is that
1335`Buffer` now only works in browsers with `Uint8Array` and `DataView` support.
1336All the other modules should maintain existing browser support.
1337
1338*Update*: a [shim was added](https://npmjs.org/package/typedarray)
1339to in 3.1 for Uint8Array and DataView support. Now you can use `Buffer` in every
1340browser.
1341
1342## direct builtin dependencies
1343
1344In v3, browserify no longer depends on
1345[browser-builtins](https://npmjs.org/package/browser-builtins), in favor of
1346depending on packages directly. Instead of having some separate packages and
1347some files in a `builtin/` directory like browser-builtins, browserify now uses
1348*only* external packages for the shims it uses. By only using external packages
1349we can keep browserify core focused purely on the static analysis and bundling
1350machinery while letting the individual packages worry about things like browser
1351compatibility and parity with the node core API as it evolves.
1352
1353Individual, tiny packages should also be much easier for newcomers to contribute
1354packages toward because they won't need to get up to speed with all the other
1355pieces going on and the packages can have their own tests and documentation.
1356Additionally, each package may find uses in other projects beside browserify
1357more easily and if people want variations on the versions of shims that ship
1358with browserify core this is easier to do when everything is separate.
1359
1360Back when we were using browser-builtins there was a large latency between
1361pushing out fixes to the individual packages and getting them into browserify
1362core because we had to wait on browser-builtins to upgrade the semvers in its
1363package.json. With direct dependencies we get much lower latency for package
1364upgrades and much more granular control over upgrading packages.
1365
1366Here is the list of packages we now directly depend on in v3:
1367
1368* [assert](https://npmjs.org/package/assert)
1369* [buffer](https://npmjs.org/package/native-buffer-browserify)
1370* [console](https://npmjs.org/package/console-browserify)
1371* [constants](https://npmjs.org/package/constants-browserify)
1372* [crypto](https://npmjs.org/package/crypto-browserify)
1373* [events](https://npmjs.org/package/events-browserify)
1374* [http](https://npmjs.org/package/http-browserify)
1375* [https](https://npmjs.org/package/https-browserify)
1376* [os](https://npmjs.org/package/os-browserify)
1377* [path](https://npmjs.org/package/path-browserify)
1378* [punycode](https://npmjs.org/package/punycode)
1379* [querystring](https://npmjs.org/package/querystring)
1380* [stream](https://npmjs.org/package/stream-browserify)
1381* [string_decoder](https://npmjs.org/package/string_decoder)
1382* [timers](https://npmjs.org/package/timers-browserify)
1383* [tty](https://npmjs.org/package/tty-browserify)
1384* [url](https://npmjs.org/package/url)
1385* [util](https://npmjs.org/package/util)
1386* [vm](https://npmjs.org/package/vm-browserify)
1387* [zlib](https://npmjs.org/package/zlib-browserify)
1388
1389That's it! If you're bold enough to give v3 a spin, just do:
1390
1391```
1392npm install -g browserify
1393```
1394
\No newline at end of file