react-native:从纱线切换到 npm

Posted

技术标签:

【中文标题】react-native:从纱线切换到 npm【英文标题】:react-native: switch from yarn to 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 文件中的版本。 【参考方案1】:

试试这个:

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

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

编辑:

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

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

第三步可以看到CLI commands comparison

【讨论】:

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

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

    删除node_modules 运行npm install

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

【讨论】:

【参考方案3】:

deyarn 包非常适合我。

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

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

【讨论】:

这是最好的答案,因为它会处理确切的依赖版本,因此在新安装后不会出现任何问题

以上是关于react-native:从纱线切换到 npm的主要内容,如果未能解决你的问题,请参考以下文章

React-native:打开表情符号键盘

如何将函数从类组件切换到函数组件

纱线在 Windows + react-native-builder-bob 上不起作用,甚至没有显示错误消息

如何卸载 Yarn

角度从 8 升级到 9 - 纱线不兼容错误

使用 react-native (expo) 切换手电筒