使用expo-cli
的官方方法是在全局安装它,请参见https://docs.expo.io/get-started/installation/#installing-expo-cli:
安装Expo CLI
# Install command line tools npm install --global expo-cli
但是,我从来没有找到任何关于为什么它应该是全局的解释(除了这简化了最初的expo init
命令)。在我看来,拥有全局包会破坏npm和本地node_modules背后的整个想法。本质上,expo-cli
是项目的直接依赖项。它用于通过expo start
运行开发版本,也用于创建生产版本。
expo-cli
的不同版本将以不同的方式工作,甚至可能期望app.config.ts
中的值不同。这意味着为一个项目在全球范围内升级expo-cli
,然后再使用由旧版本(全局)expo-cli
创建和维护的旧项目,是不安全的。
如果expo-cli
是像expo
(SDK包)这样的普通本地项目依赖项,则不会发生任何事情。
因此,我的问题是:是否有保持expo-cli
全球性的真正原因?如果将其移至本地项目依赖项,将会丢失什么?世博文档为什么从来没有提到这种选择?