コマンドでフラグが表示される場所は重要ですか?

コマンドでフラグが表示される場所は重要ですか?

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つの別々のコマンドを使用することをお勧めします。

おすすめ記事