pomelo 依赖分析
最新版本: 2.2.7

npm i pomelo 之后:
➜ haloServer npm i pomelo
npm WARN deprecated node-uuid@1.4.0: Use uuid module instead
npm WARN deprecated json3@3.3.2: Please use the native JSON object instead of JSON 3
npm WARN saveError ENOENT: no such file or directory, open '/Volumes/dzqExt/source/public/haloServer/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/Volumes/dzqExt/source/public/haloServer/package.json'
npm WARN haloServer No description
npm WARN haloServer No repository field.
npm WARN haloServer No README data
npm WARN haloServer No license field.
+ pomelo@2.2.7
added 135 packages from 91 contributors and audited 263 packages in 65.544s
found 19 vulnerabilities (9 low, 4 moderate, 6 high)
run `npm audit fix` to fix them, or `npm audit` for details
有2个库过时了, node-uuid, json3
在65.544秒内添加了来自91个贡献者的135个程序包,并审核了263个程序包
发现19个漏洞(9个低,4个中度,6个高)
运行`npm audit fix`进行修复,或运行`npm audit`了解详细信息
=== npm audit security report === ┌──────────────────────────────────────────────────────────────────────────────┐
│ Manual Review │
│ Some vulnerabilities require your attention to resolve │
│ │
│ Visit https://go.npm.me/audit-guide for additional guidance │
└──────────────────────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ semver │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=4.3.2 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > pomelo-logger > log4js > semver │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/31 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ semver │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=4.3.2 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > pomelo-rpc > pomelo-logger > log4js > semver │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/31 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ semver │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=4.3.2 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > pomelo-scheduler > log4js > semver │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/31 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Insecure Entropy Source - Math.random() │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ node-uuid │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=1.4.4 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > pomelo-rpc > node-uuid │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/93 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ mqtt │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=1.0.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > mqtt │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/140 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate │ Remote Memory Exposure │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ request │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=2.68.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > cliff > winston > request │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/309 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ parsejson │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ No patch available │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > socket.io-client > engine.io-client > │
│ │ parsejson │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/528 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > engine.io > debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > socket.io-adapter > debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > socket.io-adapter > socket.io-parser > │
│ │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > socket.io-client > socket.io-parser > │
│ │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > socket.io-parser > debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > socket.io-client > debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Regular Expression Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 2.6.9 < 3.0.0 || >= 3.1.0 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > socket.io-client > engine.io-client > │
│ │ debug │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/534 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ ws │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 1.1.5 <2.0.0 || >=3.3.1 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > engine.io > ws │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/550 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ ws │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 1.1.5 <2.0.0 || >=3.3.1 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > socket.io > socket.io-client > engine.io-client > │
│ │ ws │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/550 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Denial of Service │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ ws │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >= 1.1.5 <2.0.0 || >=3.3.1 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > ws │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/550 │
└───────────────┴──────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ High │ Remote Code Execution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ pomelo-monitor │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ No patch available │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ pomelo │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ pomelo > pomelo-admin > pomelo-monitor │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://npmjs.com/advisories/756 │
└───────────────┴──────────────────────────────────────────────────────────────┘
found 19 vulnerabilities (9 low, 4 moderate, 6 high) in 263 scanned packages
19 vulnerabilities require manual review. See the full report for details.
存在正则表达式拒绝服务的包:log4js,socket.io, debug
拒绝服务攻击: mqtt, ws
远程代码执行漏洞: pomelo-monitor
远程内存暴露: request
作为一个pomelo使用者,不得不知道这些事情, pomelo的依赖太多,导致漏洞很多。
本身设计思想是极好的。
haloServer npm ls
/Volumes/dzqExt/source/public/haloServer
└─┬ pomelo@2.2.7
├── async@0.2.5
├─┬ cliff@0.1.8
│ ├── colors@0.6.2
│ ├── eyes@0.1.8
│ └─┬ winston@0.6.2
│ ├── async@0.1.22 extraneous
│ ├── colors@0.6.2 deduped
│ ├── cycle@1.0.3
│ ├── eyes@0.1.8 deduped
│ ├── pkginfo@0.2.3
│ ├── request@2.9.203
│ └── stack-trace@0.0.10
├── commander@2.0.0
├── crc@0.2.0
├── mkdirp@0.3.3
├─┬ mqtt@0.3.9
│ ├─┬ bops@0.1.1
│ │ ├── base64-js@0.0.2
│ │ └── to-utf8@0.0.1
│ └─┬ readable-stream@1.0.34
│ ├── core-util-is@1.0.2
│ ├── inherits@2.0.4
│ ├── isarray@0.0.1
│ └── string_decoder@0.10.31
├── node-bignumber@1.2.1
├─┬ pomelo-admin@1.0.1
│ ├─┬ mqtt-connection@3.2.0
│ │ ├─┬ duplexify@3.7.1
│ │ │ ├─┬ end-of-stream@1.4.4
│ │ │ │ └─┬ once@1.4.0
│ │ │ │ └── wrappy@1.0.2
│ │ │ ├── inherits@2.0.4 deduped
│ │ │ ├── readable-stream@2.3.7 extraneous
│ │ │ └── stream-shift@1.0.1
│ │ ├── inherits@2.0.4 deduped
│ │ ├─┬ mqtt-packet@5.6.1
│ │ │ ├─┬ bl@1.2.2
│ │ │ │ ├── readable-stream@2.3.7 extraneous
│ │ │ │ └── safe-buffer@5.2.0 deduped
│ │ │ ├── inherits@2.0.4 deduped
│ │ │ ├── process-nextick-args@2.0.1
│ │ │ └── safe-buffer@5.2.0 deduped
│ │ ├── safe-buffer@5.2.0
│ │ └─┬ through2@2.0.5
│ │ ├── readable-stream@2.3.7 extraneous
│ │ └── xtend@4.0.2
│ ├── pomelo-monitor@0.3.7
│ └── pomelo-scheduler@0.3.8 extraneous
├── pomelo-loader@0.0.6
├─┬ pomelo-logger@0.1.7
│ └── log4js@0.6.21 extraneous
├── pomelo-protobuf@0.4.0
├── pomelo-protocol@0.1.6
├─┬ pomelo-rpc@1.0.7
│ ├── async@1.5.2 extraneous
│ ├── bearcat-buffer@0.1.1
│ ├── crc@0.2.0 deduped
│ ├── mqtt-connection@3.0.0 extraneous
│ ├── node-uuid@1.4.0
│ ├── pomelo-loader@0.0.6 deduped
│ ├── pomelo-logger@0.1.7 deduped
│ └── stream-pkg@0.0.5
├─┬ pomelo-scheduler@0.3.9
│ └── log4js@0.6.7 extraneous
├── seq-queue@0.0.5
├─┬ socket.io@1.7.2
│ ├── debug@2.3.3 extraneous
│ ├─┬ engine.io@1.8.2
│ │ ├─┬ accepts@1.3.3
│ │ │ ├─┬ mime-types@2.1.27
│ │ │ │ └── mime-db@1.44.0
│ │ │ └── negotiator@0.6.1
│ │ ├── base64id@1.0.0
│ │ ├── cookie@0.3.1
│ │ ├── debug@2.3.3 extraneous
│ │ ├─┬ engine.io-parser@1.3.2
│ │ │ ├── after@0.8.2
│ │ │ ├── arraybuffer.slice@0.0.6
│ │ │ ├── base64-arraybuffer@0.1.5
│ │ │ ├── blob@0.0.4
│ │ │ ├── has-binary@0.1.7 deduped
│ │ │ └── wtf-8@1.0.0
│ │ └── ws@1.1.1 deduped
│ ├─┬ has-binary@0.1.7
│ │ └── isarray@0.0.1 deduped
│ ├── object-assign@4.1.0
│ ├─┬ socket.io-adapter@0.5.0
│ │ ├── debug@2.3.3 extraneous
│ │ └── socket.io-parser@2.3.1 deduped
│ ├─┬ socket.io-client@1.7.2
│ │ ├── backo2@1.0.2
│ │ ├── component-bind@1.0.0
│ │ ├── component-emitter@1.2.1 extraneous
│ │ ├── debug@2.3.3 extraneous
│ │ ├─┬ engine.io-client@1.8.2
│ │ │ ├── component-emitter@1.2.1 extraneous
│ │ │ ├── component-inherit@0.0.3
│ │ │ ├── debug@2.3.3 extraneous
│ │ │ ├── engine.io-parser@1.3.2 deduped
│ │ │ ├── has-cors@1.1.0
│ │ │ ├── indexof@0.0.1 deduped
│ │ │ ├─┬ parsejson@0.0.3
│ │ │ │ └── better-assert@1.0.2 deduped
│ │ │ ├─┬ parseqs@0.0.5
│ │ │ │ └── better-assert@1.0.2 deduped
│ │ │ ├── parseuri@0.0.5 deduped
│ │ │ ├── ws@1.1.1 deduped
│ │ │ ├── xmlhttprequest-ssl@1.5.3
│ │ │ └── yeast@0.1.2
│ │ ├── has-binary@0.1.7 deduped
│ │ ├── indexof@0.0.1
│ │ ├── object-component@0.0.3
│ │ ├─┬ parseuri@0.0.5
│ │ │ └─┬ better-assert@1.0.2
│ │ │ └── callsite@1.0.0
│ │ ├── socket.io-parser@2.3.1 deduped
│ │ └── to-array@0.1.4
│ └─┬ socket.io-parser@2.3.1
│ ├── component-emitter@1.1.2
│ ├── debug@2.2.0 extraneous
│ ├── isarray@0.0.1 deduped
│ └── json3@3.3.2
└─┬ ws@1.1.1
├── options@0.0.6
└── ultron@1.0.2 npm ERR! extraneous: async@0.1.22 /Volumes/dzqExt/source/public/haloServer/node_modules/winston/node_modules/async
npm ERR! extraneous: readable-stream@2.3.7 /Volumes/dzqExt/source/public/haloServer/node_modules/duplexify/node_modules/readable-stream
npm ERR! extraneous: readable-stream@2.3.7 /Volumes/dzqExt/source/public/haloServer/node_modules/bl/node_modules/readable-stream
npm ERR! extraneous: readable-stream@2.3.7 /Volumes/dzqExt/source/public/haloServer/node_modules/through2/node_modules/readable-stream
npm ERR! extraneous: pomelo-scheduler@0.3.8 /Volumes/dzqExt/source/public/haloServer/node_modules/pomelo-admin/node_modules/pomelo-scheduler
npm ERR! extraneous: log4js@0.6.21 /Volumes/dzqExt/source/public/haloServer/node_modules/pomelo-logger/node_modules/log4js
npm ERR! extraneous: async@1.5.2 /Volumes/dzqExt/source/public/haloServer/node_modules/pomelo-rpc/node_modules/async
npm ERR! extraneous: mqtt-connection@3.0.0 /Volumes/dzqExt/source/public/haloServer/node_modules/pomelo-rpc/node_modules/mqtt-connection
npm ERR! extraneous: log4js@0.6.7 /Volumes/dzqExt/source/public/haloServer/node_modules/pomelo-scheduler/node_modules/log4js
npm ERR! extraneous: debug@2.3.3 /Volumes/dzqExt/source/public/haloServer/node_modules/engine.io/node_modules/debug
npm ERR! extraneous: debug@2.3.3 /Volumes/dzqExt/source/public/haloServer/node_modules/socket.io-adapter/node_modules/debug
npm ERR! extraneous: component-emitter@1.2.1 /Volumes/dzqExt/source/public/haloServer/node_modules/engine.io-client/node_modules/component-emitter
npm ERR! extraneous: debug@2.3.3 /Volumes/dzqExt/source/public/haloServer/node_modules/engine.io-client/node_modules/debug
npm ERR! extraneous: component-emitter@1.2.1 /Volumes/dzqExt/source/public/haloServer/node_modules/socket.io-client/node_modules/component-emitter
npm ERR! extraneous: debug@2.3.3 /Volumes/dzqExt/source/public/haloServer/node_modules/socket.io-client/node_modules/debug
npm ERR! extraneous: debug@2.2.0 /Volumes/dzqExt/source/public/haloServer/node_modules/socket.io-parser/node_modules/debug
npm ERR! extraneous: debug@2.3.3 /Volumes/dzqExt/source/public/haloServer/node_modules/socket.io/node_modules/debug
pomelo 轻量吗?在我看来并不轻量。
框架需要修补的东西还是挺多的。 个人觉得 mqtt, node-uuid, socke.io engine.io 都是多余的。
fork这个框架的人挺多的,不知道他们都做了哪些修改
pomelo 依赖分析的更多相关文章
- AMD and CMD are dead之KMDjs内核之依赖分析
有人说js中有三座大三:this.原型链和scope tree,搞懂了他们就算是js成人礼.当然还有其他不同看法的js成人礼,如熟悉js的:OOP.AP.FP.DOP.AOP.当然还听说一种最牛B的j ...
- Maven依赖分析
背景 昨天帮一位同事排查了一个依赖冲突的问题.问题的现象就是在IntelliJ IDEA运行项目正常,但是打包(Maven assembly jar)之后传到服务器运行失败,报错:Caused by: ...
- 高德JS依赖分析工程及关键原理
一.背景 高德 App 进行 Bundle 化后,由于业务的复杂性,Bundle 的数量非常多.而这带来了一个新的问题——Bundle 之间的依赖关系错综复杂,需要进行管控,使 Bundle 之间的依 ...
- 高德APP全链路源码依赖分析工程
一.背景 高德 App 经过多年的发展,其代码量已达到数百万行级别,支撑了高德地图复杂的业务功能.但与此同时,随着团队的扩张和业务的复杂化,越来越碎片化的代码以及代码之间复杂的依赖关系带来诸多维护性问 ...
- pomelo源代码分析(一)
千里之行始于足下,一直说想了解pomelo,对pomelo有兴趣,但一直迟迟没有去碰,尽管对pomelo进行源代码分析,在网络上肯定不止我一个,已经有非常优秀的前辈走在前面,如http://golan ...
- Log4j实战,依赖分析
背景 在项目中经常被log4j的各种依赖冲突搞的焦头烂额,久病成良医啊,在这里记录一下我对log4j的理解与分析 log4j 与 log4j2 log4j2是log4j的升级版,二者互不兼容,据说lo ...
- 构建后端第1篇之---springcloud项目依赖分析
张艳涛写于2021-2-2日 springcloud是springboot工程+cloud依赖,从这个角度来分析,使用springcloud实际上就是添加springcloud的某个以来比如eurek ...
- 小记--------spark的宽依赖与窄依赖分析
窄依赖: Narrow Dependency : 一个RDD对它的父RDD,只有简单的一对一的依赖关系.RDD的每个partition仅仅依赖于父RDD中的一个partition,父RDD和子RDD的 ...
- 【go】继续go go go,ubuntu环境搭建及golang的依赖关系分析
这次是在ubuntu14.04 amd64上搭建go的编译环境,使用的IDE换成了sublime text,具体步骤参照的是 http://blog.csdn.net/aqiang912/articl ...
随机推荐
- JAVA ArrayList集合基础
java集合的使用方法 一,集合ArrayList的定义方式 ArrayLsit<数据类型> 变量名=new ArrayList<数据类型>(); 二,集合的操作和概念 ...
- spring的各种注入
java package cn.ioc.student; import java.util.List; import java.util.Map; import java.util.Set; publ ...
- LeetCode DFS搜索与回溯专题
DFS + 回溯专题 17. 电话号码的字母组合 迭代也可以实现搜索 循环改写dfs搜索的写法: 例如 C++写法 class Solution { public: vector<string& ...
- 网络编程TCP/IP详解
网络编程TCP/IP详解 1. 网络通信 中继器:信号放大器 集线器(hub):是中继器的一种形式,区别在于集线器能够提供多端口服务,多口中继器,每个数据包的发送都是以广播的形式进行的,容易阻塞网络. ...
- 用python做时间序列预测一:初识概念
利用时间序列预测方法,我们可以基于历史的情况来预测未来的情况.比如共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的情况来预测的. 什么是时间序列? 时间序列,是指同一个变量在连续且固定的时 ...
- 【Mybatis】mybatis开启Log4j日志、增删改查操作
Mybatis日志(最常用的Log4j) 官方网站http://www.mybatis.org/mybatis-3/zh/logging.html 1.在src目录下创建一个log4j.propert ...
- Java实现 LeetCode 650 只有两个键的键盘(递归 || 数学)
650. 只有两个键的键盘 最初在一个记事本上只有一个字符 'A'.你每次可以对这个记事本进行两种操作: Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的). ...
- Java实现 LeetCode 559 N叉树的最大深度(遍历树,其实和便利二叉树一样,代码简短(●ˇ∀ˇ●))
559. N叉树的最大深度 给定一个 N 叉树,找到其最大深度. 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数. 例如,给定一个 3叉树 : 我们应返回其最大深度,3. 说明: 树的深度不 ...
- Java实现 蓝桥杯VIP 算法提高 彩票
算法提高 彩票 时间限制:1.0s 内存限制:256.0MB 问题描述 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1.每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33 ...
- Java实现 LeetCode 103 二叉树的锯齿形层次遍历
103. 二叉树的锯齿形层次遍历 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null ...