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_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】:您可以尝试采取以下步骤:
-
删除
node_modules
运行npm install
这应该可行,因为 npm 和 yarn 使用相同的 package.json。
【讨论】:
【参考方案3】:deyarn 包非常适合我。
请注意,它只会标记(而不是自动更新)您可能需要更新的任何 package-lock.json 脚本。
根据您的环境需求,您可能还想删除它添加到您的 package-lock.json 中的 engines: yarn: '..'
条目。
【讨论】:
这是最好的答案,因为它会处理确切的依赖版本,因此在新安装后不会出现任何问题以上是关于react-native:从纱线切换到 npm的主要内容,如果未能解决你的问题,请参考以下文章