websocket dev tool

This commit is contained in:
pengfei.zhou
2019-08-13 17:22:56 +08:00
parent 76fe0f9044
commit f46ac2ae73
11 changed files with 97 additions and 26 deletions

View File

@@ -15,4 +15,3 @@ program
require('./scripts/watcher')
})
program.parse(process.argv)
console.log(process.cwd())

View File

@@ -211,6 +211,11 @@
"resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.0.7.tgz",
"integrity": "sha1-UUFp2MfNC9vuzIomCeNKcWPeafY="
},
"qrcode-terminal": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
"integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ=="
},
"readdirp": {
"version": "3.1.1",
"resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.1.1.tgz",

View File

@@ -24,6 +24,7 @@
"chokidar": "^3.0.2",
"commander": "^2.20.0",
"nodejs-websocket": "^1.7.2",
"qrcode-terminal": "^0.12.0",
"rollup": "^1.18.0",
"shelljs": "^0.8.3",
"typescript": "^3.5.3"

View File

@@ -4,19 +4,48 @@ const fs = require("fs")
require('shelljs/global')
exec('npm run dev', () => {
})
ws.listen(7777)
chokidar.watch(process.cwd() + "/bundle", {
ignored: /(^|[\/\\])\../,
}).on('all', (event, path) => {
console.log('path is ', path)
if (event === 'add' || event === 'change') {
exec('npm run dev >/dev/null 2>&1', { async: true })
console.warn('Waiting ...')
setTimeout(() => {
console.warn('Start watching')
ws.listen(7777)
chokidar.watch(process.cwd() + "/bundle", {
ignored: /(^|[\/\\])\../,
}).on('change', (path) => {
console.log('path is ', path)
fs.readFile(path, 'utf-8', (error, data) => {
console.log('send data ', data)
ws.connections.forEach(e => {
e.sendText(data)
e.sendText(JSON.stringify({
script: data,
source: path.match(/[^/\\]*$/)[0],
}))
})
})
});
}, 3000);
const os = require('os');
function getIPAdress() {
const ret = []
var interfaces = os.networkInterfaces();
for (var devName in interfaces) {
var iface = interfaces[devName];
for (var i = 0; i < iface.length; i++) {
var alias = iface[i];
if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
ret.push(alias.address);
}
}
}
});
return ret
}
const qrcode = require('qrcode-terminal');
const ips = getIPAdress()
console.log(`本机IP是${ips}`)
ips.forEach(e => {
console.log(`IP:${e}`)
qrcode.generate(e, { small: true });
})