npm 、yarn、deno 的区别

·  阅读 896

1.node 安装

npm是node安装包中默认自带的,推荐使用nvm等node版本管理工具安装,避免可能的权限问题

node 非原生支持ts,需要添加依赖

npm install -D typescript
npm install -D ts-node
# Or globally with TypeScript. 
npm install -g typescript
npm install -g ts-node
复制代码

npm 版本验证

$ node -v
v10.19.0
$ npm -v
6.14.2
复制代码

npm 更新

[sudo] npm install npm -g
复制代码

npm latest安装

npm install npm@latest -g
复制代码

npm next安装

npm install npm@next -g
复制代码

npm-debug.log定位失败原因

npm install or npm publish 失败时候,通常.npm文件夹下会产生日志npm-debug.log

cli构建或者npm Enterprise用户,不适用此方法,可参考

确定日志文件所在路径
$ npm config get cache
/Users/hu/.npm
复制代码
开启日志
# install 
npm install --timing
# publish 
npm publish --timing
复制代码

2.yarn 安装

安装

全局安装

npm install -g yarn
复制代码

Home Brew

brew install yarn
复制代码

script脚本安装

curl -o- -L https://yarnpkg.com/install.sh | bash
# 指定版本
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version [version]
复制代码

tar包安装

cd /opt
wget https://yarnpkg.com/latest.tar.gz
tar zvxf latest.tar.gz
复制代码

yarn 版本验证

$ yarn --version
1.22.0 
#如果不成功,可能需要添加path
export PATH="$PATH:/opt/yarn-[version]/bin"
复制代码

yarn 版本升级

brew upgrade yarn
复制代码

安装失败 yarn-error.log

查看路径

$ npm config get cache
/Users/hu/.npm
复制代码

查看日志yarn-error.log

/Users/hu/.npm/yarn-error.log
复制代码

3. deno

Deno 基于v8 运行javascirpt 和typescript,它是安全的,支持Es模块 ,使用Rust构建。

原生支持ts,不需要安装任何依赖

安装

Linux

curl -fsSL https://deno.land/x/install/install.sh | sh
复制代码

Windows

# PowerShell
iwr https://deno.land/x/install/install.ps1 -useb | iex

#choco
choco install deno

# scoop
scoop install deno
复制代码

Mac

brew install deno

curl -fsSL https://deno.land/x/install/install.sh | sh
复制代码

验证

$ deno
deno 1.0.0
复制代码

4.npm cli 与 yarn cli 常用命令类比

内容npmyarndeno
初始化工程npm init [-y]yarn init/
添加依赖npm install [package]yarn add [package]deno install url
添加特定版本依赖npm install [package]@[version]yarn add [package]@[version]/
添加特定tag依赖npm install [package]@[tag]yarn add [package]@[tag]/
开发依赖npm install [pageckage] - -save-dev(-D)yarn add [package] - -dev/
运行时依赖npm install [package] - -save(-P)yarn add [package]/
optionalDependenciesnpm install [package] - -save-optionalyarn add [package] --optional/
更新依赖npm upgrade [pageckage]yarn upgrade [package]deno upgrade(deno版本更新)
更新特定版本依赖npm upgrade [pageckage]@[version]yarn upgrade [package]@[version]/
更新特定tag依赖npm upgrade [pageckage]@[tag]yarn upgrade [package]@[tag]/
删除依赖npm uninstall [pageckage]yarn remove [package]/
整体安装npm installyarn/
运行scripts脚本命令npm runyarn rundeno run
包测试npm testyarn testdeno test
本地缓存相关管理npm cacheyarn cachedeno cache
展示依赖包信息/yarn info [package]deno info url

5. npm cliyarn cli命令列表区别

npmyarn描述
npm install [package]yarn add [package]添加单个依赖
npm audityarn audit安全性校验
/yarn autoclean自我移除不需要的依赖
npm binyarn bin
npm build/包构建
npm cacheyarn cache本地缓存相关管理
npm doctor 与 npm outdatedyarn check两者不同,npm是判断环境和是否过期,yarn 是check依赖是否正确
npm configyarn config配置信息
/yarn createyarn create 利用create-*模板创建项目
npm install -gyarn global全局安装
npm helpyarn help帮助信息
/yarn import从package-lock.json 得到yarn.lock
/yarn info [package]展示package 信息
npm inityarn init创建package.json
npm installyarn install根据package.json配置,添加整体依赖
npm ci/根据package-lock.json配置,添加依赖,没有package-lock.json,报错退出
/yarn licenses列出所有安装包的licenses
npm linkyarn link创建符号链接
npm lsyarn list列表已经安装的依赖
/yarn login保存npm 注册填写username,email
npm logoutyarn logout清空保存的username,email
npm outdatedyarn outdatedcheck 版本是否过期
npm owneryarn owner包管理者相关概念
npm packyarn pack创建压缩包
npm publishyarn publish发布包
npm uninstallyarn remove删除包依赖
npm runyarn run运行scripts脚本命令
/yarn self-updateyarn更新到最新
npm dist-tagyarn tag依赖tag管理
npm teamyarn teamteam信息维护
npm testyarn test包测试
/yarn unlink删除符号链接
npm upgradeyarn upgrade更新依赖
npm versionyarn version版本验证
/yarn versions展示安装的node,yarn,依赖版本信息

6.npm 安装常见18错误

1.Broken npm installation

解决方法如下:

  • Mac or Linux,重新安装
  • Windows,从官网下载node安装包,重新安装

2.Random errors

解决方法如下:

  • 运行如下命令
# 清楚缓存
npm cache clean
复制代码
  • 查看具体的错误,分析原因
npm install xxx -verbose 
复制代码

3.No compatible version found

npm版本过低,需要升级

解决方法如下:

npm install -g npm@latest
复制代码

4.Permissions errors

权限问题,安装路径拥有的权限有关,推荐使用nvm等包管理工具安装

5.Error: ENOENT,...

Error: ENOENT, stat 'C:\Users<user>\AppData\Roaming\npm' on Windows 7

需要确保路径存在且可写入

C:\Users\<user>\AppData\Roaming\npm
复制代码

6.No space

npm ERR! Error: ENOSPC, write。原因在于没有空间,或者权限不足,

解决方法如下:

  • 释放磁盘空间
  • 修改路径
npm config set tmp /path/to/big/drive/tmp
复制代码
  • 最终跟换有空间的服务器安装

7.No git

npm ERR! not found: git ENOGIT 。

解决方法如下:

8.Running a Vagrant box...

9.npm only uses git...

解决方法如下:

git config --global url."https://github.com/".insteadOf git@github.com:
git config --global url."https://".insteadOf git://
复制代码

10.SSL error

解决方法如下:

    1. 禁用 strict-ssl
# or 
npm config set strict-ssl false
复制代码
    1. 查看node版本,过低,先升级node
    1. 更新npm
 npm install npm -g --ca=""
 npm config set ca "" 
复制代码

12.Not found / Server error

解决方法如下:

  • 确保安装包存在
  • 检查网络

13.Invalid JSON

解放方法如下:

  • 清除缓存
npm cache clean
复制代码

14.Many ENOENT / ENOTEMPTY errors in output

解决方法如下:

# 升级
npm install -g npm@latest
复制代码

15.cb() never called!

# 升级
npm install -g npm@latest
复制代码

16.npm login errors

解决步骤如下:

  • 登录npmjs.com
  • 修改密码
  • 清除相关文件
sed -ie '/registry.npmjs.org/d' ~/.npmrc
复制代码
  • 重新登录

17.npm hangs on Windows...

解决步骤如下:

  • 查看tmp文件夹
npm config ls -l
复制代码
  • 删除多余的一个

18.npm not running the latest version...

解决方法,请移步

更多推荐

js这些常用的method,深入了解下

Angular8多场景下单元测试实践指南

参考

Npm Doc

Yarn Doc

npm cli

Deno

分类:
前端
标签:
分类:
前端
标签: