UNPKG

nw-dev

Version:

A drop-in library for nw.js development

94 lines (56 loc) 2.17 kB
# nw-dev A drop-in library for [nw.js][] development * Live-reloads upon save * Reloads when you press <kbd>F5</kbd> * Opens the devtools when you press <kbd>F12</kbd> (`nw@>=0.13.0` does this for you) * Opens the devtools upon error * Sets `window.CRASHED` upon 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 like `window.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 (that you're developing, at least): ```html <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: ```html <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][]. ## don't annoyingly assert window focus when reloading (This can be especially annoying if your editor autosaves!) You may have your app set up to show itself once it finishes loading. That's a good thing, but if you're calling `win.show()`, it can inadvertently focus the window. Do this (with JavaScript): ```js if(!win.shown){ win.show(); win.shown = true; } ``` Or this (with CoffeeScript): ```coffee win.show() unless win.shown win.shown = yes ``` (Now autosaving can once again be beneficial!) ## develop nw-dev * `npm i` * `npm link`, and `npm link nw-dev` from an nw.js project * `npm run prepublish` to recompile [nw.js]: https://github.com/nwjs/nw.js [chokidar]: https://github.com/paulmillr/chokidar [micromatch]: https://github.com/jonschlinkert/micromatch