이중 대시가 npm에서 더 많은 명령 옵션을 허용하는 이유는 무엇입니까?

이중 대시가 npm에서 더 많은 명령 옵션을 허용하는 이유는 무엇입니까?

방금 다음 명령을 발견했습니다.

npm run script ./src/automation/automation_main.ts -- -i payroll_integration

나는 이중 대시를 검색했는데 다음 답변에 따르면 명령 옵션의 끝을 나타내는 것 같습니다. https://unix.stackexchange.com/a/11382/47958

내가 이해하지 못하는 것은 이중 대시(-i) 뒤에 명령 옵션이 있는 이유입니다. 이중 대시 후에도 명령 옵션을 포함할 수 있나요?

이중 대시를 사용하거나 사용하지 않고 위 스크립트를 실행했는데 둘 다 작동하는 것 같았습니다.

답변1

예제 명령에서 발생하는 일은 두 개의 프로그램이 호출되고 둘 다 명령줄 인수를 취한다는 것입니다. 당신은 호출하고 npm있으며 호출 스크립트의 매개변수를 npm존중할 것입니다 . 모든 매개변수는 따옴표로 묶이지 않습니다(아마도 이러한 종류의 npm 명령에 필요할 것입니다).run scriptautomation_main.ts

이 매개변수는 -i payroll_integration분명히 npm이 아닌 스크립트에만 적용됩니다. npm이 구문 분석을 시도하지 않도록 어떻게 설득합니까(오류가 발생할 수 있음)?

답변: 줄의 나머지 단어가 npm에 대한 매개 변수가 아님을 npm에 알려주는 매개 변수를 삽입합니다. 이것은 --"이것이 당신의 주장의 끝입니다. 나머지는 걱정하지 마십시오"를 의미합니다. Npm은 까지의 인수를 제거 --하고 스크립트를 호출하고 스크립트가 구문 분석하고 사용할 나머지 줄을 표시합니다.

다른 많은 GNU 유틸리티와 마찬가지로 이 주장을 이해하고 bash있지만 일부 프로그램은 이를 이해하지 못하므로 여기서 설명하는 작업을 수행하지 않습니다 .npm--npm

관련 정보