我一直在使用以下命令来安装 Expo CLI 软件包:
sudo npm install expo-cli --global
上面的命令可以成功安装该软件包。但是,我想知道--global
在包名称之前移动是否与上面的命令同样有效。因此,改为这样做:
sudo npm install --global expo-cli
环境:Ubuntu 18.04。
我在网上查找参考资料,但没有找到(尽管某处一定有)。
答案1
这手册页npm(1)
显示:
Synopsis npm <command> [args]
它没有说太多其他内容,所以我们只能推断出 是install
且<command>
必须出现在 之前[args]
。是和。[args]
expo-cli
--global
让我们检查一下该install
命令,看看是否可以获得更多详细信息。 npm-install(1)
说:
Synopsis ... npm install [<@scope>/]<name> ... aliases: npm i, npm add common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]
它没有说任何有关顺序的事情。这开始让我们认为顺序并不重要。如果我们向下滚动,我们会看到如下内容:
The --tag argument will apply to all of the specified install targets. The -g or --global argument will cause npm to install the package globally rather than locally. See npm help folders.
好的...所以手册页中从未提到顺序,但我们看到它--tag
适用于所有目标。他们认为在手册页中提及很重要,因为如果有人尝试安装多个软件包并指定标签,他们可能会认为该--tag
标志仅适用于之前或之后的软件包。事实并非如此,选项适用于一切。如果选项适用于一切,那么顺序可能并不重要。
请注意,他们在手册页中给出的所有示例都将包放在标志之前。
你可以尝试一下:
npm install sax --global expo-cli
检查它们是否都已全局安装(我打赌它们是)。
如果您想安装多个软件包,一些是本地的,一些是全局的,那么我建议采取安全的方法并使用两个单独的命令,因为文档中没有定义它,因此行为可能会改变。