Deno 和 Npm 的对应关系
写在前面
Deno 和 Node 是互相竞争的关系,但是 Deno 和 Npm 是互相参考的关系;
因为 Deno 同时承担了运行时和包管理器的角色,而 Npm 是我们熟悉的;
我想着,如果我把 Npm 常用的命令和 Deno 做个比较;
这可能会让小伙伴们更加深刻的理解。
如果你对 Npm 还不熟悉,可以参考本站的
Deno 与 Npm 的相爱相杀
我个人认为,Deno 虽然打着解决去 node_module
的方式,但是用力过猛了;
由此又带来了很多问题,比如包版本的引用控制,多版本共存的问题,以及用户想发布自己包的体验等等;
而且它使用 URL 引入的方式,来进行包的加载,当初很多步道 Node 和 Npm 的人,谈到 Npm 和 bowser 这两种方式,部分都是支持 Npm 这种是优点的。
当然,Deno 还刚刚出来,我们也要给 Deno 足够的时间来解决和完善这些问题。
但是,目前情况下 Deno 在 Nodejs 的大生态下,还只是一个孩子,基本属于不能打的情况!
官方维护的标准库,都还有很多不确定的 API,随时可能会修改!
建议谨慎考虑是否用到生产环境!
注:以上仅代表朱安邦的个人观点,一家之言,仅供参考!
Deno 与 Npm 的对应关系
项目 | Npm | Deno |
---|---|---|
全局安装 | npm install -g |
第一次使用(无需特意安装) |
本地安装 | npm install |
无 |
临时安装 | npx install |
无 |
如何查找合适的包 | https://www.npmjs.com/ | 标准库 / 第三方库 |
安装和管理 | 安装 Nodejs 时默认安装 | Deno 同时承担运行时和包管理器的角色 |
依赖管理 | package.json 内管理 |
deno info 查看 |
版本锁 | package-lock.json |
--lock 命令行选项,通过锁文件 (lock file) |
更新包 | npm update |
--reload 命令行选项 |
卸载包 | npm uninstall |
等待补充 |
创建包 | 发到 npmjs 官网或Github,比如ed25519 | 发到自己的服务器,比如 axihe hello |
更新包 | package.json 内修改 version |
通过 url 重新发 |
包名字 | 发到 Npm 的包是不能与已有包重复,发到 Github 上的随便起 | 任意起(去中心的) |
希望这个对比,大家可以仔细了解下