【问题标题】:react-native: switch from yarn to npmreact-native:从纱线切换到 npm
【发布时间】:2018-12-16 19:03:30
【问题描述】:

是否有逐步的过程来将 react-native 项目从使用 yarn 作为包管理器更改为使用 npm?经过几天的搜索,我只能找到从 npm 到 yarn 的说明以及一个名为 deyarn 的包,这似乎对我来说并不完全适用。有没有人有这方面的好资源?

【问题讨论】:

  • 请不要将 yarnpkg 改为 yarn 标签。 yarn 是又一个资源谈判者,而不是开源 JavaScript 包管理器(与 yarnpkg 标签一起使用)。
  • 你使用的是什么版本的 npm?我相信,创建 yarn 是为了锁定模块版本,以便跨系统安装模块是一致的。 NPM 在版本 5 中添加了此功能,但如果您使用的是旧版本,那么您的“npm install”将获取最新的所有内容(我认为)并且可能其中一个包正在破坏您的代码。另一方面,yarn install 将在两台 PC 上安装相同的版本(npm 5 也是如此,但我读的不太好)。理论上应该可以在 package-lock.json 文件中使用 yarn.lock 文件中的版本。

标签: react-native npm yarnpkg


【解决方案1】:

试试这个:

  • 删除yarn.lock(不需要此文件)。
  • 删除文件夹node_modules
  • package.json 中,将脚本使用 yarn 更改为与npm 相同的命令
  • 删除所有yarn的全局包(如果你想在一个项目中使用npm,则不需要删除)
  • 如果您不想再次使用 yarn,请将其删除。
  • 安装npm(如果已安装,请忽略此步骤)
  • 安装你需要的全局和本地包

你能上传一些error,你说not fully work

编辑:

如果你想把npm改成yarn,也一样:

  • 删除package-lock.json(不需要此文件)。
  • 删除文件夹node_modules
  • package.json 中,将使用npm 的脚本更改为与yarn 相同的命令
  • 删除npm的所有全局包(如果您想在一个项目中使用yarn,则不需要删除)
  • 如果您不想再次使用 npm,请将其删除。
  • 安装yarn(如果已安装,请忽略此步骤)
  • 安装你需要的全局和本地包

第三步可以看到CLI commands comparison

【讨论】:

  • 我已经尝试过您的建议,但它不起作用。我认为“未完全工作”部分以及您的建议对我不起作用的原因是由于项目的 gitignore 文件中的某些内容。我将不得不检查并回来
  • `它不起作用`。你能告诉我你为什么这么说吗?
  • 我这么说是因为它不起作用。我希望当我运行命令并按照您的说明操作时,将我的代码签入 git,进行全新的克隆并尝试进行全新的 npm 安装,我应该能够运行我的项目,但我不能。它运行的唯一方法是我安装纱线。
  • 你的源代码可以公开,如果真的可以上传,我会努力修复的。
  • @Hongarc 如果我需要在 npm 项目中添加纱线?
【解决方案2】:

您可以尝试采取以下步骤:

  1. 删除node_modules
  2. 运行npm install

这应该可行,因为 npm 和 yarn 使用相同的 package.json。

【讨论】:

    【解决方案3】:

    deyarn 包非常适合我。

    请注意,它只会标记(而不是自动更新)您可能需要更新的任何 package-lock.json 脚本。

    根据您的环境需求,您可能还想删除它添加到您的 package-lock.json 中的 engines: yarn: '..' 条目。

    【讨论】:

    • 这是最好的答案,因为它会处理确切的依赖版本,因此在新安装后不会出现任何问题
    猜你喜欢
    • 2021-07-05
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2021-10-06
    • 1970-01-01
    • 2021-10-04
    相关资源
    最近更新 更多