![標誌出現在指令中的位置有關係嗎?](https://rvso.com/image/178495/%E6%A8%99%E8%AA%8C%E5%87%BA%E7%8F%BE%E5%9C%A8%E6%8C%87%E4%BB%A4%E4%B8%AD%E7%9A%84%E4%BD%8D%E7%BD%AE%E6%9C%89%E9%97%9C%E4%BF%82%E5%97%8E%EF%BC%9F.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
檢查它們是否都已全局安裝(我打賭它們是)。
如果您想安裝多個軟體包,有些是本地的,有些是全域的,那麼我建議採取安全的方法並使用兩個單獨的命令,因為文件中沒有定義它,因此行為可能會改變。