npm install -g react-native-cli 与使用 npx react-native init <project name> 有啥区别?

Posted

技术标签:

【中文标题】npm install -g react-native-cli 与使用 npx react-native init <project name> 有啥区别?【英文标题】:what is the difference between npm install -g react-native-cli versus using npx react-native init <project name>?npm install -g react-native-cli 与使用 npx react-native init <project name> 有什么区别? 【发布时间】:2021-01-01 21:09:09 【问题描述】:

**使用 npm install -g react-native-cli 和 init 设置 react-native-cli 与使用 npx react-native init 有什么区别?

我最近在开发 react-native 应用程序时遇到了很多错误。首先,我使用 npm install -g react-native 设置我的系统并且工作正常,但后来在安装依赖项时遇到了 eneont 错误,例如找不到 fsevent、nanoid、hammerjs 等。 官方文档包括使用 npx 的设置。我真的对这种方法感到困惑。 您能否介绍一些关于 npm 与 npx 以及使用“-g”参数进行安装的知识?

【问题讨论】:

【参考方案1】:

npx 是一个 npm 包运行器(x 可能代表 eXecute)。典型用途是临时下载并运行一个包或进行试用。

使用 npm 你可以在你的机器上安装包。 global 使您的所有项目都可以使用它,而不仅仅是您当前工作的项目。

【讨论】:

那么我该如何管理它们,以免它们破坏我的安装?我应该只使用 npx 还是只使用 npm? 如果您知道使用什么 - 并且您知道您的项目需要哪些包使用 npm。我总是使用 npm 而不是 npx。 npm -g 我用于 react-native 安装或 expo-cli,因为您在每个项目中都需要它。 @MandilSubba 是否解决了您的问题?如果是,请考虑接受答案或询问尚不清楚的地方 我正在尝试你处理包裹的方式,但仍然不满意 谢谢yeslamFaded,我删除了AppData中的npm文件中的文件,现在它正在工作。 -g 版本和 npm install 版本不同,我想这也是导致 enoent 的原因。我删除了它们,现在文档中的说明正在起作用。【参考方案2】:

正如 yesIamFaded 所指出的,npx 命令确实会在您每次运行代码时下载包,从网络的角度来看,它可能是有益的。但是,根据 React-Native 文档(您可以找到 here),该 cli 已被弃用,它可能会导致问题。引用文档:

如果您之前安装了全局 react-native-cli 包,请将其删除,因为它可能会导致意外问题。

所以我个人不会靠近它。

【讨论】:

以上是关于npm install -g react-native-cli 与使用 npx react-native init <project name> 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

npm install --save 和 npm install -d的区别

运行 npm install cordova 时 npm install 不起作用

npm install --save 与 npm install --save-dev 的区别

npm install --save 与 npm install --save-dev 的区别

`npm install` 与 Meteor 1.3 中的 `meteor npm install` 相同吗?

npm installnpm install --save与npm install -dev区别