要将一个项目从 Yarn 转换为 npm,通常涉及以下步骤:

1. 移除 Yarn 特定的文件

首先,删除与 Yarn 相关的配置文件。主要是:

  • yarn.lock 文件:该文件保存了 Yarn 的依赖树。npm 使用的是 package-lock.json,所以在切换到 npm 时,需要删除 yarn.lock 文件。

    rm yarn.lock
  • .yarnrc 文件:该文件保存了 Yarn 的配置。如果存在 .yarnrc 文件,也应该删除或迁移相关配置。

    rm .yarnrc

2. 安装 npm 并重新生成依赖

如果还没有安装 npm,可以使用以下命令来安装 npm:

npm install -g npm

接下来,使用 npm 来重新安装项目的依赖:

npm install

此命令将基于 package.json 文件重新生成依赖,并生成 package-lock.json 文件,它会记录所有安装的包及其版本。

3. 确保 npm 和 Yarn 的依赖一致

由于 Yarn 和 npm 在依赖解析上可能存在一些微小的差异,建议在转换完成后仔细检查项目的依赖是否与原来一致。例如,你可以运行测试、构建项目,确保一切如预期正常工作。

4. 更新项目脚本

如果你的项目中有使用 Yarn 的脚本指令,如 yarn start 或 yarn build,这些需要替换为 npm 对应的命令,如:

  • yarn start → npm start
  • yarn build → npm run build

5. 检查其他配置文件

检查项目的其他配置文件,看看是否有特定于 Yarn 的配置,例如 CI/CD 配置文件中有指向 yarn 命令的指令。将这些指令替换为 npm 的等效指令。

6. 使用 .npmrc 替代 .yarnrc

在 .yarnrc 文件中的一些配置可以迁移到 .npmrc 文件。例如,Yarn 的镜像源配置可能需要移到 .npmrc 文件中,以确保 npm 使用相同的镜像源。

7. 清理与测试

清理项目并重新运行测试,确保一切功能正常。常见的清理步骤包括:

npm cache clean --force
rm -rf node_modules
npm install

重新安装依赖并运行项目,以确保一切正常工作。

8. 总结与注意事项

  • Yarn 特有的功能:Yarn 中的一些功能如 workspaces,在 npm 中也有类似功能支持。如果你的项目使用了 Yarn 的工作区功能,切换到 npm 后可以通过 npm 的 workspaces 进行配置。
  • 依赖的一致性:在从 Yarn 切换到 npm 后,可能会出现一些依赖版本的细微差异,尤其是在处理间接依赖时。确保在切换后测试你的项目,验证所有依赖的版本是否符合预期。

通过以上步骤,你应该能够顺利将项目从 Yarn 切换到 npm 并确保项目在 npm 环境中正常运行。