Write ES2015 for the browser, import Node packages with the ES2015 module syntax and generate separate source maps.
esnow is a Node package that preconfigures Browserify including the Babelify and Uglifyify transforms. It generates
separate source map files using Exorcist.
For watching and compiling changed files esnow uses
watchify. Watchify increases compile speed after the first compile because it uses caching.
It is very easy to use.
esnow with npm.
npm install esnow --save-dev
esnow call it to your package.json
scripts field. Specify your entryfile with the
-e option and the output folder with the
esnow will produce an
main.js and an
main.js.map in your output folder.
"scripts":"js": "esnow -e js/main.js -o out/js"
If you want to use Watchify just add
"scripts":"jsw": "esnow -e js/main.js -o out/js -w"
Execute it with npm.
npm run js
npm run jsw
Using Node Packages
Because we are using Browserify you can install and use node packages in your program of course.
Install a package as a devDependency:
npm install --save-dev some-cool-package
Then go ahead and import it in your program with the ES2015 module syntax:
Then use it!
The Babelify transform transpiles this to a CommonJS
require statement and passes it on to Browserify to bundle it up with your program.
You can also install and use it globally.
npm install -g esnow
Then just use it anywhere you want with the
esnow -e js/main.js -o out/js
esnow -e js/main.js -o out/js -w
Enjoy writing ESXXXX code with Node packages and debugging it easily via source maps.
--outputPath, -o Pass the output path (required). --entryFile, -e Path to the entry file (required). --watch, -w Watch and compile your files with watchify. --prod, -p Production mode (minifies the code). --outputFileName, -f Name of the output file defaults to the basename of `--entryFile`.
- write better tests
- add better cli with help with
package.jsonfor Browserify transforms
- refactor this package to es6
- The output filename does not default to "app.js" anymore. It defaults to the filename of your entryfile. Feature added by @andreruffert.
MIT © Kahlil Lechelt