인터넷에서는 Windows가 shebang 라인을 지원하지 않는다고 말하지만 분명히 Angular는 이를 지원하고 작동합니다. 이를 사용하고 Windows에서 작동하는 파일의 예: https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/bin/ng
CMD를 열고 해당 파일이 있는 디렉터리로 이동하여 간단히 실행하면 ng
Windows는 노드와 함께 실행되어야 한다는 것을 인식하고 실행합니다(아마도) node ng
. 하지만 내 파일로 시도해 보면 작동하지 않습니다. 해당 파일의 예:
#!/usr/bin/env node
'use strict';
console.log("logging test");
해당 파일을 다른 이름으로 저장 test
하고 실행 하면 'test' is not recognized as an internal or external command, operable program or batch file.
Why is that so?라는 메시지 가 나타납니다.
출력 where ng
:
C:\Users\Dread\AppData\Roaming\npm\ng
C:\Users\Dread\AppData\Roaming\npm\ng.cmd
답변1
당신의 출력에서 where ng
무슨 일이 일어나고 있는지 분명합니다.
Windows는 shebang 줄을 지원하지 않으므로 읽은 내용이 정확합니다. Windows가 지원하는 것은 파일 확장자이며 실행 가능한 확장자가 있습니다.
너하다가지고 있지만 ng
직접 실행되지는 않습니다. ng.cmd
거의 확실하게 node ng
.
Windows를 실행할 때 가능한 모든 실행 파일 형식( , , 등) ng
에 대한 경로를 검색하고 일치하는 첫 번째 형식을 실행했습니다 .exe
bat
cmd
ng.cmd
스크립트를 실행하려면 스크립트를 에 대한 인수로 실행하거나 node
동일한 작업을 수행하는 파일을 node test
만들어야 합니다 .test.cmd