All notable changes will be documented in this file. Simplifyify adheres to Semantic Versioning.
v8.0.0 (2020-02-18)
-
Moved Simplifyify to the @JSDevTools scope on NPM
-
The "simplifyify" NPM package is now just a wrapper around the scoped "@jsdevtools/simplifyify" package
v7.0.0 (2018-10-18)
- Simplifyify is no longer tested on Node 6 and Node 8. It's now only tested on the latest LTS version of Node (which is currently Node 10). It currently still works fine in older versions, but they are no longer officially supported.
-
Improved performance by making many operations async and parallelizing them
-
Fixed a bug that caused Simplifyify to crash in watch mode when files contained syntax errors
v6.0.0 (2018-09-29)
-
The shorthand argument for the
--excludeoption is now-xinstead of-u -
The
--testargument has been replaced with--coveragefor clarity. The corresponding shorthand argument is-c. -
The
--coverageargument produces a.coverage.jsfile instead of a.test.jsfile
v5.0.0 (2018-09-17)
- Simplifyify now has built-in support for TypeScript! If your entry file has a
.tsor.tsxextension, then Simplifyify will automatically use TSify to transpile your code. You can configure TSify via thebrowserify.pluginsfield in your package.json, or via a tsconfig.json file. If both exist, then thebrowserify.pluginsfield overrides any values in tsconfig.json.
-
Dropped support for Node v4.0 and older (see https://github.com/nodejs/Release)
-
Previously, browserify-banner could be configured using the
browserify.transformfield in package.json. But browserify-banner is a Browserify plugin, not a transform. This caused it to be loaded twice - once as a plugin and once as a transform. You should now use thebrowserify.pluginsfield instead. -
The
browserify.transformfield in package.json can be used to configure Browserify transforms. Previously, Simplifyify allowed you to also use it to configure Browserify plugins, but that caused plugins to be loaded twice - once as a plugin and once as a transform. This can cause undefined behavior with some plugins. To fix that, Simplifyify now expects you to to configure Browserify plugins using thebrowserify.pluginsfield instead.
v4.0.0 (2018-01-17)
-
Updated all dependencies, including major version updates of
browserify,babelify,browserify-istanbul, andexorcist -
Switched from UglifyJS to Uglify-ES, which supports ES2015+ syntax. This shouldn't break anything, but I'm bumping the major version number just to be safe
v3.3.0 (2018-01-10)
-
Refactored to use ES6 syntax (Node 4.x compatible)
-
The
--standaloneoption now supports a wildcard (e.g. "MyLib.*"). Thanks to @taye for the PR
v3.2.0 (2016-11-11)
- Fixed several subtle bugs that were introduced in 3.1.0
v3.1.0 (2016-11-06)
New Feature: bannerify support
Just add a banner.txt file to your project, and it'll automatically be added to your output bundle(s). The banner.txt file can contain Lodash templates, which have access to the full lodash library as well as moment-js for date/time formatting. See this example.
File i/o operations have been optimized in this release. Files that are likely to be needed by multiple entry files are cached so they only need to be read once. Other file i/o operations that were previously synchronous are now asynchronous.
v3.0.0 (2016-11-02)
Simplifyify now requires Node 4.0 or greater, which is in-line with the Node.js LTS schedule. Many other dev tools, including some that simplifyify depends on, have also started dropping support for Node 0.x. Time to upgrade, folks.
Simplifyify has always used uglifyify under the hood to minify each module individually, but now it also uses UglifyJS to minify the entire bundle file. This 2-phase process produces the smallest output possible.
You can now specify custom options for the built-in Uglifyify and Istanbul transforms via the browserify.transform in your package.json. See this example in the ReadMe.
v2.0.0 (2015-12-28)
Simplifyify will now check your package.json file to see if you have a browserify.transform field. If so, then it will automatically add those transforms. No need to specify them on the command line. See the readme for more details.
In previous versions, Simplifyify always created an unminified bundle. This makes sense if you don't specify any output options. But if you do specify output options (such as --coverage or --minify), then you may not have expected it to also create an unminified bundle. So, in this version, there is now a --bundle option that you must use to explicitly specify that you want an unminified bundle. Otherwise, only the bundle(s) that you explicitly specify will be created.