Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

你的 node 依赖们炸了没? #17

Open
NoName4Me opened this issue Jul 17, 2018 · 0 comments
Open

你的 node 依赖们炸了没? #17

NoName4Me opened this issue Jul 17, 2018 · 0 comments
Labels

Comments

@NoName4Me
Copy link
Owner

NoName4Me commented Jul 17, 2018

题外话,今天发生了一件神奇的事情,执行 npm i 后,报了一堆错误,最后 node_modules 目录下只有一个 .staging 目录,里面都是类似 .staging/lodash.set-8c2829bc 这种东东。

各种查找,被虐,最后重装 node 后忽然就好了,太邪乎,无法相信,晚上换了一台电脑,又出现了。应该并不是配置或 node 的问题,这次老实了,认真的去看别人的踩坑记居然还有内存不足导致的!!!,当然目测网络不好或什么导致依赖包一时半会儿下不来,就一直处于 .staging 状态,可以试试 yarn 或淘宝镜像。

几点关于 node 依赖包的规范吧

查看目前依赖包树结构

npm ls --depth=00 指定树深度,去了解更多

查看无用(无关)依赖

# 安装工具 depcheck
npm install -g depcheck

# 使用,参考 https://www.npmjs.com/package/depcheck
depcheck [directory] [arguments]

你可能会惊讶于居然依赖了好几个无用包。

引入什么样的包

issue 解决率,社区使用率(npm-stat),版本发布间隔等。

比如 npm view sequelize 你会得到类似这样的信息:

[email protected] | MIT | deps: 17 | versions: 368
Multi dialect ORM for Node.JS
https://github.com/sequelize/sequelize#readme

keywords: mysql, sqlite, postgresql, postgres, mssql, orm, nodejs, object relational mapper

dist
.tarball https://registry.npmjs.org/sequelize/-/sequelize-4.38.0.tgz
.shasum: 330c1aa445d4e46b80a97d895603c01666cdc357
.integrity: sha512-ZCcV2HuzU+03xunWgVeyXnPa/RYY5D2U/WUNpq+xF8VmDTLnSDsHl+pEwmiWrpZD7KdBqDczCeTgjToYyVzYQg==
.unpackedSize: 857.2 kB

dependencies:
bluebird: ^3.5.0               moment: ^2.20.0
# more ...

maintainers:
- durango <[email protected]>
# more ...

dist-tags:
latest: 4.38.0      next: 5.0.0-beta.9

published 3 weeks ago by sushantdhiman <[email protected]>

更新

注意: 请及时上传 package-lock.json 文件,保证项目依赖版本一致,当然 yarn 了解一下。

保持版本及时更新,查看项目依赖是否已经过时:

npm outdated
# 你会得到类似下面的结果
Package  Current  Wanted  Latest  Location
eslint    4.19.1  4.19.1   5.1.0  api-server

依赖关系更新有时包含破坏性更改。当显示需要更新时,请始终先查看其发行说明。并逐一更新依赖项,如果出现任何问题,可以使故障排除更容易。可以使用类似 npm-check-updates 这样的工具来解决这个问题。

安全漏洞

利用工具Snyk 检测已知漏洞,它支持 github、gitlab 等很多项目关联,当然也可以本地使用:

npm install -g snyk
cd ~/projects/myproj/
# 登陆 snyk 账号
snyk auth
# 执行检测
snyk test

#### 检测结果
Organisation:    noname4me
Package manager: npm
Target file:     package.json
Open source:     no
Project path:    /your/project/path

✓ Tested 134 dependencies for known vulnerabilities, no vulnerable paths found.

参考: https://github.com/elsewhencode/project-guidelines/blob/master/README-zh.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant