명령에서 플래그가 나타나는 위치가 중요합니까?

명령에서 플래그가 나타나는 위치가 중요합니까?

Expo CLI 패키지를 설치하기 위해 다음 명령을 사용했습니다.

sudo npm install expo-cli --global

위 명령은 성공적으로 작동하여 해당 패키지를 설치합니다. 그런데 --global패키지 이름 앞으로 옮기면 위의 명령과 동일하게 작동하는지 궁금합니다 . 따라서 대신 다음을 수행하십시오.

sudo npm install --global expo-cli

환경: 우분투 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

둘 다 전역적으로 설치되어 있는지 확인하세요.

여러 패키지(일부는 로컬, 일부는 전역)를 설치하려는 경우 문서에 정의되어 있지 않아 동작이 변경될 수 있으므로 안전한 접근 방식을 취하고 두 개의 별도 명령을 사용하는 것이 좋습니다.

관련 정보