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 ...
随机推荐
- 又抓了一个导致频繁GC的鬼--数组动态扩容
概述 本周有个同事过来咨询一个比较诡异的gc问题,大概现象是,系统一直在做cms gc,但是老生代一直不降下去,但是执行一次jmap -histo:live之后,也就是主动触发一次full gc之后, ...
- eatwhatApp开发实战(三)
在实战二中我们在eatwhatApp上增加了“添加店铺的功能”.接下来,我们来将添加的店铺显示出来,这里我们用到控件--ListView. 先上演示图: 首先,我们先设置布局: <Relativ ...
- equals()方法练习
1: package com.aff.equals; public class TestOrder { public static void main(String[] args) { Order o ...
- JavaScript 引用数据类型
目录 1. 问题描述 2. 原因分析 3. React 中的引用数据类型 4. 业务场景 5. 参考资料 1. 问题描述 今天在写一个代码题时候, 有一个BUG 导致自己停滞好久, 该BUG 可以描述 ...
- Linux内存管理—详细讲解
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法.力求从外到内.水到渠成地引导网友分析Linux的内存管理与使用.在 ...
- 从0开始探究vue-公共变量的管理
背景 在Vue项目中,我们总会遇到一些公共数据的处理,如方法拦截,全局变量等,本文旨在解决这些问题 解决方案 事件总线 所谓事件总线,就是在当前的Vue实例之外,再创建一个Vue实例来专门进行变量传递 ...
- 初学者对Git的使用安装教程,以及对unknown key type -rsa的解决办法
第一次使用Git,诚惶诚恐. Git在每个电脑上第一次使用必须要配置环境,才能通过SSH秘钥的方式安全稳定的拉取代码! 此文适合对Git一无所知的小白观看,大神勿扰.下面我将讲解一个傻瓜式的Git安装 ...
- (Java实现) 营救
问题 B: 营救 时间限制: 1 Sec 内存限制: 128 MB 题目描述 铁塔尼号遇险了!他发出了求救信号.距离最近的哥伦比亚号收到了讯息,时间就是生命,必须尽快赶到那里. 通过侦测,哥伦比亚号获 ...
- Java实现蓝桥杯模拟正整数序列的数量
问题描述 小明想知道,满足以下条件的正整数序列的数量: 1. 第一项为 n: 2. 第二项不超过 n: 3. 从第三项开始,每一项小于前两项的差的绝对值. 请计算,对于给定的 n,有多少种满足条件的序 ...
- Java实现P2102 -- 正整数序列
P2102 – 正整数序列 给定正整数n, 你的任务是用最少的操作次数把序列1,2,-,n中的所有数都变成0.每次操作可从序列中选择一个或多个整数, 同时减去一个相同的正整数.比如,1,2,3可以把2 ...