fncheng / webpack-learn

learn webpack
0 stars 0 forks source link

NPM && Yarn #6

Open fncheng opened 1 year ago

fncheng commented 1 year ago

NPM CLI vs Yarn CLI

https://github.com/zuojj/fedlab/issues/3

yarn对比npmhttps://zhuanlan.zhihu.com/p/23493436

从npm迁移到yarnhttps://classic.yarnpkg.com/en/docs/migrating-from-npm

install package

安装模块

npm install [package]

-S, --save 安装包信息将加入到dependencies(生产阶段的依赖)

npm install gulp --save 或 npm install gulp -S

yarn add [package]

yarn add package-name@tag 安装具体的“tag” (比如, beta 、 next 或者 latest )。

package.json 文件的 dependencies 字段:

"dependencies": {
    "gulp": "^3.9.1"
}

-D, --save-dev 安装包信息将加入到devDependencies(开发阶段的依赖),所以开发阶段一般使用它

npm install gulp --save-dev 或 npm install gulp -D

yarn add [package] [--dev/-D]

package.json 文件的 devDependencies字段:

"devDependencies": {
    "gulp": "^3.9.1"
}

-P, --peer 安装包至peerDependencies

update package

npm update --global                     yarn global upgrade
                                                                            yarn upgrade

换源

npm更换源

npm config get registry  // 查看npm当前镜像源

npm config set registry https://registry.npm.taobao.org/  // 设置npm镜像源为淘宝镜像

yarn config get registry  // 查看yarn当前镜像源

yarn config set registry https://registry.npm.taobao.org/  // 设置yarn镜像源为淘宝镜像

镜像源地址部分如下:

npm --- https://registry.npmjs.org/

cnpm --- https://r.cnpmjs.org/

taobao --- https://registry.npm.taobao.org/

nj --- https://registry.nodejitsu.com/

rednpm --- https://registry.mirror.cqupt.edu.cn/

npmmirror --- https://registry.npmmirror.com/

deunpm --- http://registry.enpmjs.org/

npx vs npm

https://www.ruanyifeng.com/blog/2019/02/npx.html

npx cache folder:

~/.npm/_npx on macOS

%AppData%/npm-cache/_npx on Windows

npx 等效于 yarn create

从yarn迁移到yarn2

只需在具体项目下执行

yarn set version berry

yarn会创建 .yarn 目录和 .yarnrc.yml 文件,用户需要关注的只是 .yarnrc.yml 文件,它等同于1代的 .yarnrc 文件。

配置.yarnrc.yml

yarnrc.yml默认只有一句

yarnPath: ".yarn/releases/yarn-berry.cjs"

加上一句

npmRegistryServer: "https://registry.npmmirror.com/"

日常命令同一代

fncheng commented 1 year ago

关于node-modules中重复的包如何解决

在 Node.js 项目中,某些依赖包可能会被多次安装。这可能会浪费磁盘空间,并导致冲突或不兼容问题。为了解决这个问题,可以尝试以下方法:

  1. 使用 npm dedupe 命令
  2. 使用 yarn 来管理依赖

与 npm 不同,npm 需要运行单独的命令(npm dedupe)来进行依赖去重操作,而 Yarn 已经将去重操作集成到了安装流程中。这意味着,当你运行 yarn install 命令时,Yarn 会首先解析所有的依赖包,然后通过自动去重机制安装这些包,自动将重复依赖包去重。 因此,通常情况下,在运行 yarn install 后就不需要再运行 yarn dedupe 命令了

在项目根目录下运行以下命令:

yarn install --pure-lockfile

这个命令将使用 yarn.lock 文件来安装依赖关系,并将依赖项 dedupe 到同一目录中。