![コマンド内でフラグがどこに表示されるかは重要ですか?](https://rvso.com/image/178495/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E5%86%85%E3%81%A7%E3%83%95%E3%83%A9%E3%82%B0%E3%81%8C%E3%81%A9%E3%81%93%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%81%8B%E3%81%AF%E9%87%8D%E8%A6%81%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
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
両方がグローバルにインストールされているかどうかを確認します (インストールされているはずです)。
ローカルパッケージとグローバルパッケージを含む複数のパッケージをインストールする場合は、ドキュメントで定義されていないため動作が変わる可能性があるため、安全な方法を採用して 2 つの別々のコマンドを使用することをお勧めします。