├── .gitignore ├── .npmignore ├── example ├── index.js ├── main │ └── notindex.js ├── package-lock.json ├── package.json └── project │ └── index.js ├── index.js ├── package-lock.json ├── package.json └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (http://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # Typescript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | example 2 | -------------------------------------------------------------------------------- /example/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express') 2 | var app = express() 3 | var reload = require('../') 4 | 5 | 6 | var pathMain = __dirname + '/main/notindex' 7 | app.use(reload(pathMain)) 8 | 9 | 10 | var pathProject = __dirname + '/project/' 11 | app.use('/project', reload(pathProject)) 12 | 13 | app.listen(9000, () => console.log('Listening on 9000')) 14 | -------------------------------------------------------------------------------- /example/main/notindex.js: -------------------------------------------------------------------------------- 1 | var express = require('express') 2 | var app = express.Router() 3 | 4 | app.get('/', (req, res) => { 5 | res.send('Hello World Not called index.js 1') 6 | }) 7 | 8 | module.exports = app 9 | -------------------------------------------------------------------------------- /example/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "dependencies": { 6 | "accepts": { 7 | "version": "1.3.3", 8 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", 9 | "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=" 10 | }, 11 | "array-flatten": { 12 | "version": "1.1.1", 13 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 14 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 15 | }, 16 | "content-disposition": { 17 | "version": "0.5.2", 18 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", 19 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" 20 | }, 21 | "content-type": { 22 | "version": "1.0.2", 23 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", 24 | "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" 25 | }, 26 | "cookie": { 27 | "version": "0.3.1", 28 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", 29 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 30 | }, 31 | "cookie-signature": { 32 | "version": "1.0.6", 33 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 34 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 35 | }, 36 | "debug": { 37 | "version": "2.6.7", 38 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", 39 | "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=" 40 | }, 41 | "depd": { 42 | "version": "1.1.0", 43 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", 44 | "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=" 45 | }, 46 | "destroy": { 47 | "version": "1.0.4", 48 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 49 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 50 | }, 51 | "ee-first": { 52 | "version": "1.1.1", 53 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 54 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 55 | }, 56 | "encodeurl": { 57 | "version": "1.0.1", 58 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", 59 | "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" 60 | }, 61 | "escape-html": { 62 | "version": "1.0.3", 63 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 64 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 65 | }, 66 | "etag": { 67 | "version": "1.8.0", 68 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", 69 | "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" 70 | }, 71 | "express": { 72 | "version": "4.15.3", 73 | "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", 74 | "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=" 75 | }, 76 | "finalhandler": { 77 | "version": "1.0.3", 78 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", 79 | "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=" 80 | }, 81 | "forwarded": { 82 | "version": "0.1.0", 83 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", 84 | "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" 85 | }, 86 | "fresh": { 87 | "version": "0.5.0", 88 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", 89 | "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" 90 | }, 91 | "http-errors": { 92 | "version": "1.6.1", 93 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", 94 | "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=" 95 | }, 96 | "inherits": { 97 | "version": "2.0.3", 98 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 99 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 100 | }, 101 | "ipaddr.js": { 102 | "version": "1.3.0", 103 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.3.0.tgz", 104 | "integrity": "sha1-HgOlL9rYOou7KyXL9JmLTP/NPew=" 105 | }, 106 | "media-typer": { 107 | "version": "0.3.0", 108 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 109 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 110 | }, 111 | "merge-descriptors": { 112 | "version": "1.0.1", 113 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 114 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 115 | }, 116 | "methods": { 117 | "version": "1.1.2", 118 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 119 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 120 | }, 121 | "mime": { 122 | "version": "1.3.4", 123 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", 124 | "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" 125 | }, 126 | "mime-db": { 127 | "version": "1.27.0", 128 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", 129 | "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" 130 | }, 131 | "mime-types": { 132 | "version": "2.1.15", 133 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", 134 | "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=" 135 | }, 136 | "ms": { 137 | "version": "2.0.0", 138 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 139 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 140 | }, 141 | "negotiator": { 142 | "version": "0.6.1", 143 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", 144 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 145 | }, 146 | "on-finished": { 147 | "version": "2.3.0", 148 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 149 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=" 150 | }, 151 | "parseurl": { 152 | "version": "1.3.1", 153 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", 154 | "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" 155 | }, 156 | "path-to-regexp": { 157 | "version": "0.1.7", 158 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 159 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 160 | }, 161 | "proxy-addr": { 162 | "version": "1.1.4", 163 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz", 164 | "integrity": "sha1-J+VF9pYKRKYn2bREZ+NcG2tM4vM=" 165 | }, 166 | "qs": { 167 | "version": "6.4.0", 168 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", 169 | "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" 170 | }, 171 | "range-parser": { 172 | "version": "1.2.0", 173 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", 174 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" 175 | }, 176 | "send": { 177 | "version": "0.15.3", 178 | "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", 179 | "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=" 180 | }, 181 | "serve-static": { 182 | "version": "1.12.3", 183 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", 184 | "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=" 185 | }, 186 | "setprototypeof": { 187 | "version": "1.0.3", 188 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", 189 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" 190 | }, 191 | "statuses": { 192 | "version": "1.3.1", 193 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", 194 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" 195 | }, 196 | "type-is": { 197 | "version": "1.6.15", 198 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", 199 | "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=" 200 | }, 201 | "unpipe": { 202 | "version": "1.0.0", 203 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 204 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 205 | }, 206 | "utils-merge": { 207 | "version": "1.0.0", 208 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", 209 | "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" 210 | }, 211 | "vary": { 212 | "version": "1.1.1", 213 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", 214 | "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" 215 | } 216 | } 217 | } 218 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.15.3" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /example/project/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express') 2 | var app = express.Router() 3 | 4 | app.get('/', (req, res) => { 5 | res.send('Hello World reloader 1') 6 | }) 7 | 8 | module.exports = app 9 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var chokidar = require('chokidar') 2 | var debug = require('debug')('express-reload') 3 | var path = require('path') 4 | 5 | module.exports = function(folder) { 6 | debug('Folder to require and watch', folder) 7 | let rootFolder = folder 8 | if(folder.charAt(folder.length - path.sep.length) !== path.sep) { 9 | debug('Testing if the folder is a folder') 10 | rootFolder = path.dirname(folder).replace(new RegExp('\\' + path.sep, 'g'), '/') 11 | } 12 | var watcher = chokidar.watch(rootFolder) 13 | var re = new RegExp(rootFolder) 14 | debug('regex created', re) 15 | watcher.on('ready', function() { 16 | watcher.on('all', function() { 17 | console.log('Clearing ' + rootFolder + ' module cache from server') 18 | Object.keys(require.cache).forEach(function(id) { 19 | if (re.test(id.replace(new RegExp('\\' + path.sep, 'g'), '/'))) { 20 | debug('deleting cache key') 21 | delete require.cache[id] 22 | } 23 | }) 24 | }) 25 | }) 26 | require(folder) 27 | return function(req, res, next) { 28 | debug('require hot reload') 29 | require(folder)(req, res, next) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "express-reload", 3 | "version": "1.2.0", 4 | "lockfileVersion": 1, 5 | "dependencies": { 6 | "anymatch": { 7 | "version": "1.3.0", 8 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", 9 | "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=" 10 | }, 11 | "arr-diff": { 12 | "version": "2.0.0", 13 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 14 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=" 15 | }, 16 | "arr-flatten": { 17 | "version": "1.1.0", 18 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 19 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" 20 | }, 21 | "array-unique": { 22 | "version": "0.2.1", 23 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 24 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" 25 | }, 26 | "arrify": { 27 | "version": "1.0.1", 28 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 29 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" 30 | }, 31 | "async-each": { 32 | "version": "1.0.1", 33 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 34 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" 35 | }, 36 | "balanced-match": { 37 | "version": "1.0.0", 38 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 39 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 40 | }, 41 | "binary-extensions": { 42 | "version": "1.8.0", 43 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", 44 | "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=" 45 | }, 46 | "brace-expansion": { 47 | "version": "1.1.8", 48 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 49 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" 50 | }, 51 | "braces": { 52 | "version": "1.8.5", 53 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 54 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=" 55 | }, 56 | "chokidar": { 57 | "version": "1.7.0", 58 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 59 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=" 60 | }, 61 | "concat-map": { 62 | "version": "0.0.1", 63 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 64 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 65 | }, 66 | "core-util-is": { 67 | "version": "1.0.2", 68 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 69 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 70 | }, 71 | "debug": { 72 | "version": "2.6.8", 73 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 74 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" 75 | }, 76 | "expand-brackets": { 77 | "version": "0.1.5", 78 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 79 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=" 80 | }, 81 | "expand-range": { 82 | "version": "1.8.2", 83 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 84 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=" 85 | }, 86 | "extglob": { 87 | "version": "0.3.2", 88 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 89 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=" 90 | }, 91 | "filename-regex": { 92 | "version": "2.0.1", 93 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 94 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" 95 | }, 96 | "fill-range": { 97 | "version": "2.2.3", 98 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 99 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=" 100 | }, 101 | "for-in": { 102 | "version": "1.0.2", 103 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 104 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" 105 | }, 106 | "for-own": { 107 | "version": "0.1.5", 108 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 109 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=" 110 | }, 111 | "fsevents": { 112 | "version": "1.1.2", 113 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", 114 | "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", 115 | "optional": true, 116 | "dependencies": { 117 | "abbrev": { 118 | "version": "1.1.0", 119 | "bundled": true, 120 | "optional": true 121 | }, 122 | "ajv": { 123 | "version": "4.11.8", 124 | "bundled": true, 125 | "optional": true 126 | }, 127 | "ansi-regex": { 128 | "version": "2.1.1", 129 | "bundled": true 130 | }, 131 | "aproba": { 132 | "version": "1.1.1", 133 | "bundled": true, 134 | "optional": true 135 | }, 136 | "are-we-there-yet": { 137 | "version": "1.1.4", 138 | "bundled": true, 139 | "optional": true 140 | }, 141 | "asn1": { 142 | "version": "0.2.3", 143 | "bundled": true, 144 | "optional": true 145 | }, 146 | "assert-plus": { 147 | "version": "0.2.0", 148 | "bundled": true, 149 | "optional": true 150 | }, 151 | "asynckit": { 152 | "version": "0.4.0", 153 | "bundled": true, 154 | "optional": true 155 | }, 156 | "aws-sign2": { 157 | "version": "0.6.0", 158 | "bundled": true, 159 | "optional": true 160 | }, 161 | "aws4": { 162 | "version": "1.6.0", 163 | "bundled": true, 164 | "optional": true 165 | }, 166 | "balanced-match": { 167 | "version": "0.4.2", 168 | "bundled": true 169 | }, 170 | "bcrypt-pbkdf": { 171 | "version": "1.0.1", 172 | "bundled": true, 173 | "optional": true 174 | }, 175 | "block-stream": { 176 | "version": "0.0.9", 177 | "bundled": true 178 | }, 179 | "boom": { 180 | "version": "2.10.1", 181 | "bundled": true 182 | }, 183 | "brace-expansion": { 184 | "version": "1.1.7", 185 | "bundled": true 186 | }, 187 | "buffer-shims": { 188 | "version": "1.0.0", 189 | "bundled": true 190 | }, 191 | "caseless": { 192 | "version": "0.12.0", 193 | "bundled": true, 194 | "optional": true 195 | }, 196 | "co": { 197 | "version": "4.6.0", 198 | "bundled": true, 199 | "optional": true 200 | }, 201 | "code-point-at": { 202 | "version": "1.1.0", 203 | "bundled": true 204 | }, 205 | "combined-stream": { 206 | "version": "1.0.5", 207 | "bundled": true 208 | }, 209 | "concat-map": { 210 | "version": "0.0.1", 211 | "bundled": true 212 | }, 213 | "console-control-strings": { 214 | "version": "1.1.0", 215 | "bundled": true 216 | }, 217 | "core-util-is": { 218 | "version": "1.0.2", 219 | "bundled": true 220 | }, 221 | "cryptiles": { 222 | "version": "2.0.5", 223 | "bundled": true, 224 | "optional": true 225 | }, 226 | "dashdash": { 227 | "version": "1.14.1", 228 | "bundled": true, 229 | "optional": true, 230 | "dependencies": { 231 | "assert-plus": { 232 | "version": "1.0.0", 233 | "bundled": true, 234 | "optional": true 235 | } 236 | } 237 | }, 238 | "debug": { 239 | "version": "2.6.8", 240 | "bundled": true, 241 | "optional": true 242 | }, 243 | "deep-extend": { 244 | "version": "0.4.2", 245 | "bundled": true, 246 | "optional": true 247 | }, 248 | "delayed-stream": { 249 | "version": "1.0.0", 250 | "bundled": true 251 | }, 252 | "delegates": { 253 | "version": "1.0.0", 254 | "bundled": true, 255 | "optional": true 256 | }, 257 | "ecc-jsbn": { 258 | "version": "0.1.1", 259 | "bundled": true, 260 | "optional": true 261 | }, 262 | "extend": { 263 | "version": "3.0.1", 264 | "bundled": true, 265 | "optional": true 266 | }, 267 | "extsprintf": { 268 | "version": "1.0.2", 269 | "bundled": true 270 | }, 271 | "forever-agent": { 272 | "version": "0.6.1", 273 | "bundled": true, 274 | "optional": true 275 | }, 276 | "form-data": { 277 | "version": "2.1.4", 278 | "bundled": true, 279 | "optional": true 280 | }, 281 | "fs.realpath": { 282 | "version": "1.0.0", 283 | "bundled": true 284 | }, 285 | "fstream": { 286 | "version": "1.0.11", 287 | "bundled": true 288 | }, 289 | "fstream-ignore": { 290 | "version": "1.0.5", 291 | "bundled": true, 292 | "optional": true 293 | }, 294 | "gauge": { 295 | "version": "2.7.4", 296 | "bundled": true, 297 | "optional": true 298 | }, 299 | "getpass": { 300 | "version": "0.1.7", 301 | "bundled": true, 302 | "optional": true, 303 | "dependencies": { 304 | "assert-plus": { 305 | "version": "1.0.0", 306 | "bundled": true, 307 | "optional": true 308 | } 309 | } 310 | }, 311 | "glob": { 312 | "version": "7.1.2", 313 | "bundled": true 314 | }, 315 | "graceful-fs": { 316 | "version": "4.1.11", 317 | "bundled": true 318 | }, 319 | "har-schema": { 320 | "version": "1.0.5", 321 | "bundled": true, 322 | "optional": true 323 | }, 324 | "har-validator": { 325 | "version": "4.2.1", 326 | "bundled": true, 327 | "optional": true 328 | }, 329 | "has-unicode": { 330 | "version": "2.0.1", 331 | "bundled": true, 332 | "optional": true 333 | }, 334 | "hawk": { 335 | "version": "3.1.3", 336 | "bundled": true, 337 | "optional": true 338 | }, 339 | "hoek": { 340 | "version": "2.16.3", 341 | "bundled": true 342 | }, 343 | "http-signature": { 344 | "version": "1.1.1", 345 | "bundled": true, 346 | "optional": true 347 | }, 348 | "inflight": { 349 | "version": "1.0.6", 350 | "bundled": true 351 | }, 352 | "inherits": { 353 | "version": "2.0.3", 354 | "bundled": true 355 | }, 356 | "ini": { 357 | "version": "1.3.4", 358 | "bundled": true, 359 | "optional": true 360 | }, 361 | "is-fullwidth-code-point": { 362 | "version": "1.0.0", 363 | "bundled": true 364 | }, 365 | "is-typedarray": { 366 | "version": "1.0.0", 367 | "bundled": true, 368 | "optional": true 369 | }, 370 | "isarray": { 371 | "version": "1.0.0", 372 | "bundled": true 373 | }, 374 | "isstream": { 375 | "version": "0.1.2", 376 | "bundled": true, 377 | "optional": true 378 | }, 379 | "jodid25519": { 380 | "version": "1.0.2", 381 | "bundled": true, 382 | "optional": true 383 | }, 384 | "jsbn": { 385 | "version": "0.1.1", 386 | "bundled": true, 387 | "optional": true 388 | }, 389 | "json-schema": { 390 | "version": "0.2.3", 391 | "bundled": true, 392 | "optional": true 393 | }, 394 | "json-stable-stringify": { 395 | "version": "1.0.1", 396 | "bundled": true, 397 | "optional": true 398 | }, 399 | "json-stringify-safe": { 400 | "version": "5.0.1", 401 | "bundled": true, 402 | "optional": true 403 | }, 404 | "jsonify": { 405 | "version": "0.0.0", 406 | "bundled": true, 407 | "optional": true 408 | }, 409 | "jsprim": { 410 | "version": "1.4.0", 411 | "bundled": true, 412 | "optional": true, 413 | "dependencies": { 414 | "assert-plus": { 415 | "version": "1.0.0", 416 | "bundled": true, 417 | "optional": true 418 | } 419 | } 420 | }, 421 | "mime-db": { 422 | "version": "1.27.0", 423 | "bundled": true 424 | }, 425 | "mime-types": { 426 | "version": "2.1.15", 427 | "bundled": true 428 | }, 429 | "minimatch": { 430 | "version": "3.0.4", 431 | "bundled": true 432 | }, 433 | "minimist": { 434 | "version": "0.0.8", 435 | "bundled": true 436 | }, 437 | "mkdirp": { 438 | "version": "0.5.1", 439 | "bundled": true 440 | }, 441 | "ms": { 442 | "version": "2.0.0", 443 | "bundled": true, 444 | "optional": true 445 | }, 446 | "node-pre-gyp": { 447 | "version": "0.6.36", 448 | "bundled": true, 449 | "optional": true 450 | }, 451 | "nopt": { 452 | "version": "4.0.1", 453 | "bundled": true, 454 | "optional": true 455 | }, 456 | "npmlog": { 457 | "version": "4.1.0", 458 | "bundled": true, 459 | "optional": true 460 | }, 461 | "number-is-nan": { 462 | "version": "1.0.1", 463 | "bundled": true 464 | }, 465 | "oauth-sign": { 466 | "version": "0.8.2", 467 | "bundled": true, 468 | "optional": true 469 | }, 470 | "object-assign": { 471 | "version": "4.1.1", 472 | "bundled": true, 473 | "optional": true 474 | }, 475 | "once": { 476 | "version": "1.4.0", 477 | "bundled": true 478 | }, 479 | "os-homedir": { 480 | "version": "1.0.2", 481 | "bundled": true, 482 | "optional": true 483 | }, 484 | "os-tmpdir": { 485 | "version": "1.0.2", 486 | "bundled": true, 487 | "optional": true 488 | }, 489 | "osenv": { 490 | "version": "0.1.4", 491 | "bundled": true, 492 | "optional": true 493 | }, 494 | "path-is-absolute": { 495 | "version": "1.0.1", 496 | "bundled": true 497 | }, 498 | "performance-now": { 499 | "version": "0.2.0", 500 | "bundled": true, 501 | "optional": true 502 | }, 503 | "process-nextick-args": { 504 | "version": "1.0.7", 505 | "bundled": true 506 | }, 507 | "punycode": { 508 | "version": "1.4.1", 509 | "bundled": true, 510 | "optional": true 511 | }, 512 | "qs": { 513 | "version": "6.4.0", 514 | "bundled": true, 515 | "optional": true 516 | }, 517 | "rc": { 518 | "version": "1.2.1", 519 | "bundled": true, 520 | "optional": true, 521 | "dependencies": { 522 | "minimist": { 523 | "version": "1.2.0", 524 | "bundled": true, 525 | "optional": true 526 | } 527 | } 528 | }, 529 | "readable-stream": { 530 | "version": "2.2.9", 531 | "bundled": true 532 | }, 533 | "request": { 534 | "version": "2.81.0", 535 | "bundled": true, 536 | "optional": true 537 | }, 538 | "rimraf": { 539 | "version": "2.6.1", 540 | "bundled": true 541 | }, 542 | "safe-buffer": { 543 | "version": "5.0.1", 544 | "bundled": true 545 | }, 546 | "semver": { 547 | "version": "5.3.0", 548 | "bundled": true, 549 | "optional": true 550 | }, 551 | "set-blocking": { 552 | "version": "2.0.0", 553 | "bundled": true, 554 | "optional": true 555 | }, 556 | "signal-exit": { 557 | "version": "3.0.2", 558 | "bundled": true, 559 | "optional": true 560 | }, 561 | "sntp": { 562 | "version": "1.0.9", 563 | "bundled": true, 564 | "optional": true 565 | }, 566 | "sshpk": { 567 | "version": "1.13.0", 568 | "bundled": true, 569 | "optional": true, 570 | "dependencies": { 571 | "assert-plus": { 572 | "version": "1.0.0", 573 | "bundled": true, 574 | "optional": true 575 | } 576 | } 577 | }, 578 | "string_decoder": { 579 | "version": "1.0.1", 580 | "bundled": true 581 | }, 582 | "string-width": { 583 | "version": "1.0.2", 584 | "bundled": true 585 | }, 586 | "stringstream": { 587 | "version": "0.0.5", 588 | "bundled": true, 589 | "optional": true 590 | }, 591 | "strip-ansi": { 592 | "version": "3.0.1", 593 | "bundled": true 594 | }, 595 | "strip-json-comments": { 596 | "version": "2.0.1", 597 | "bundled": true, 598 | "optional": true 599 | }, 600 | "tar": { 601 | "version": "2.2.1", 602 | "bundled": true 603 | }, 604 | "tar-pack": { 605 | "version": "3.4.0", 606 | "bundled": true, 607 | "optional": true 608 | }, 609 | "tough-cookie": { 610 | "version": "2.3.2", 611 | "bundled": true, 612 | "optional": true 613 | }, 614 | "tunnel-agent": { 615 | "version": "0.6.0", 616 | "bundled": true, 617 | "optional": true 618 | }, 619 | "tweetnacl": { 620 | "version": "0.14.5", 621 | "bundled": true, 622 | "optional": true 623 | }, 624 | "uid-number": { 625 | "version": "0.0.6", 626 | "bundled": true, 627 | "optional": true 628 | }, 629 | "util-deprecate": { 630 | "version": "1.0.2", 631 | "bundled": true 632 | }, 633 | "uuid": { 634 | "version": "3.0.1", 635 | "bundled": true, 636 | "optional": true 637 | }, 638 | "verror": { 639 | "version": "1.3.6", 640 | "bundled": true, 641 | "optional": true 642 | }, 643 | "wide-align": { 644 | "version": "1.1.2", 645 | "bundled": true, 646 | "optional": true 647 | }, 648 | "wrappy": { 649 | "version": "1.0.2", 650 | "bundled": true 651 | } 652 | } 653 | }, 654 | "glob-base": { 655 | "version": "0.3.0", 656 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 657 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=" 658 | }, 659 | "glob-parent": { 660 | "version": "2.0.0", 661 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 662 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=" 663 | }, 664 | "graceful-fs": { 665 | "version": "4.1.11", 666 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 667 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" 668 | }, 669 | "inherits": { 670 | "version": "2.0.3", 671 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 672 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 673 | }, 674 | "is-binary-path": { 675 | "version": "1.0.1", 676 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 677 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=" 678 | }, 679 | "is-buffer": { 680 | "version": "1.1.5", 681 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", 682 | "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" 683 | }, 684 | "is-dotfile": { 685 | "version": "1.0.3", 686 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 687 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" 688 | }, 689 | "is-equal-shallow": { 690 | "version": "0.1.3", 691 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 692 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=" 693 | }, 694 | "is-extendable": { 695 | "version": "0.1.1", 696 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 697 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" 698 | }, 699 | "is-extglob": { 700 | "version": "1.0.0", 701 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 702 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" 703 | }, 704 | "is-glob": { 705 | "version": "2.0.1", 706 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 707 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=" 708 | }, 709 | "is-number": { 710 | "version": "2.1.0", 711 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 712 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=" 713 | }, 714 | "is-posix-bracket": { 715 | "version": "0.1.1", 716 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 717 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" 718 | }, 719 | "is-primitive": { 720 | "version": "2.0.0", 721 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 722 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" 723 | }, 724 | "isarray": { 725 | "version": "1.0.0", 726 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 727 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 728 | }, 729 | "isobject": { 730 | "version": "2.1.0", 731 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 732 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=" 733 | }, 734 | "kind-of": { 735 | "version": "3.2.2", 736 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 737 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" 738 | }, 739 | "micromatch": { 740 | "version": "2.3.11", 741 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 742 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=" 743 | }, 744 | "minimatch": { 745 | "version": "3.0.4", 746 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 747 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" 748 | }, 749 | "ms": { 750 | "version": "2.0.0", 751 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 752 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 753 | }, 754 | "nan": { 755 | "version": "2.6.2", 756 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", 757 | "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", 758 | "optional": true 759 | }, 760 | "normalize-path": { 761 | "version": "2.1.1", 762 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 763 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=" 764 | }, 765 | "object.omit": { 766 | "version": "2.0.1", 767 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 768 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=" 769 | }, 770 | "parse-glob": { 771 | "version": "3.0.4", 772 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 773 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=" 774 | }, 775 | "path-is-absolute": { 776 | "version": "1.0.1", 777 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 778 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 779 | }, 780 | "preserve": { 781 | "version": "0.2.0", 782 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 783 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" 784 | }, 785 | "process-nextick-args": { 786 | "version": "1.0.7", 787 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 788 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 789 | }, 790 | "randomatic": { 791 | "version": "1.1.7", 792 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 793 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 794 | "dependencies": { 795 | "is-number": { 796 | "version": "3.0.0", 797 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 798 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 799 | "dependencies": { 800 | "kind-of": { 801 | "version": "3.2.2", 802 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 803 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=" 804 | } 805 | } 806 | }, 807 | "kind-of": { 808 | "version": "4.0.0", 809 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 810 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=" 811 | } 812 | } 813 | }, 814 | "readable-stream": { 815 | "version": "2.3.3", 816 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 817 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" 818 | }, 819 | "readdirp": { 820 | "version": "2.1.0", 821 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 822 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=" 823 | }, 824 | "regex-cache": { 825 | "version": "0.4.3", 826 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", 827 | "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=" 828 | }, 829 | "remove-trailing-separator": { 830 | "version": "1.0.2", 831 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", 832 | "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=" 833 | }, 834 | "repeat-element": { 835 | "version": "1.1.2", 836 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 837 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" 838 | }, 839 | "repeat-string": { 840 | "version": "1.6.1", 841 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 842 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" 843 | }, 844 | "safe-buffer": { 845 | "version": "5.1.1", 846 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 847 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 848 | }, 849 | "set-immediate-shim": { 850 | "version": "1.0.1", 851 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 852 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" 853 | }, 854 | "string_decoder": { 855 | "version": "1.0.3", 856 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 857 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" 858 | }, 859 | "util-deprecate": { 860 | "version": "1.0.2", 861 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 862 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 863 | } 864 | } 865 | } 866 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "express-reload", 3 | "version": "1.2.0", 4 | "description": "Automatic hot reload express.js server", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [ 10 | "reload", 11 | "nodemon", 12 | "express", 13 | "express" 14 | ], 15 | "author": "", 16 | "license": "MIT", 17 | "dependencies": { 18 | "chokidar": "^1.7.0", 19 | "debug": "^2.6.8" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # express reload 2 | 3 | Automaticly reload your express.js server without bringing down the server. This is really useful because it will hot reload instead of waiting for the whole node.js process to restart. 4 | 5 | ## Install 6 | 7 | ``` 8 | npm install express-reload --save-dev 9 | ``` 10 | 11 | Find it on https://www.npmjs.com/package/express-reload 12 | 13 | ## Example 14 | 15 | ```js 16 | var express = require('express') 17 | var reload = require('express-reload') 18 | var app = express() 19 | 20 | // path to reload 21 | // important should end with "/" if index.js 22 | var path = __dirname + '/project/' 23 | // or like this for a non index.js name 24 | var path = __dirname + '/project/server.js' 25 | 26 | app.use(reload(path)) 27 | 28 | app.listen(9000, () => console.log('Listening on 9000')) 29 | 30 | ``` 31 | --------------------------------------------------------------------------------