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
--exclude
option is now-x
instead of-u
-
The
--test
argument has been replaced with--coverage
for clarity. The corresponding shorthand argument is-c
. -
The
--coverage
argument produces a.coverage.js
file instead of a.test.js
file
v5.0.0 (2018-09-17)
- Simplifyify now has built-in support for TypeScript! If your entry file has a
.ts
or.tsx
extension, then Simplifyify will automatically use TSify to transpile your code. You can configure TSify via thebrowserify.plugins
field in your package.json, or via a tsconfig.json file. If both exist, then thebrowserify.plugins
field 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.transform
field 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.plugins
field instead. -
The
browserify.transform
field 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.plugins
field 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
--standalone
option 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.