nw-dev
nw-dev copied to clipboard
A drop-in library for nw.js development
This repository is in maintainance mode. Bug fixes will be provided on a best effort basis. If you use this project, please consider contributing back.
nw-dev
A drop-in library for nw.js development
-
Live-reloads upon save
-
Reloads when you press F5
-
Opens the devtools when you press F12 (
nw@>=0.13.0does this for you) -
Opens the devtools upon error
-
Sets
window.CRASHEDupon error, so you can stop an animation loop for example (and not flood the console with errors) -
Clears the require cache, so reloading works with modules
-
When you change
package.json, it closes and reopens the window with the new values, so you don't even have to restart to change things likewindow.frame(not working in latest nw.js) -
When loaded in a browser (non-nw.js), it only tries to do error handling
Install
npm i nw-dev --save-dev
Put this script before any other scripts (or at least ones you're developing):
<script src="node_modules/nw-dev/lib/dev.js"></script>
Exclude some files from being watched
By default node_modules, npm-debug.log, .git, .hg, and .svn are ignored.
You can ignore additional paths by adding a data-ignore attribute to the script:
<script src="node_modules/nw-dev/lib/dev.js" data-ignore="data.json|*.md"></script>
The ignore pattern will be passed to chokidar and interpreted by micromatch.
Usage with win.show()
If you use win.show() to show your app's window only once it finishes loading,
it may also focus the window, depending on the platform.
This can be annoying if you want to keep editing after saving, as it will steal focus from your code editor — especially if you use autosave.
To avoid this behavior, you can guard against calling win.show() more than once like so:
if(!win.shown){
win.show();
win.shown = true;
}
Note that win.shown is a made-up property (using Javascript's expando feature), but it's attached to the NW.js window object rather than using a simple global variable, in order to persist across reloads.
Develop nw-dev
-
npm i -
npm link, andnpm link nw-devfrom an nw.js project -
npm run prepublishto recompile