標誌出現在指令中的位置有關係嗎?

標誌出現在指令中的位置有關係嗎?

我一直在使用以下命令來安裝 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

檢查它們是否都已全局安裝(我打賭它們是)。

如果您想安裝多個軟體包,有些是本地的,有些是全域的,那麼我建議採取安全的方法並使用兩個單獨的命令,因為文件中沒有定義它,因此行為可能會改變。

相關內容