Internet đang nói với tôi rằng Windows không hỗ trợ các dòng shebang nhưng rõ ràng Angular Cuses nó và nó hoạt động. Ví dụ về tệp sử dụng nó và hoạt động trên Windows: https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/bin/ng
Nếu tôi mở CMD, điều hướng đến thư mục với tệp đó và chạy đơn giản ng
, Windows sẽ nhận ra rằng nó sẽ được chạy với nút và thực thi (tôi đoán) node ng
. Nhưng nếu tôi thử điều đó với tập tin của riêng tôi, nó không hoạt động. Ví dụ về tập tin đó:
#!/usr/bin/env node
'use strict';
console.log("logging test");
Nếu tôi lưu tệp đó dưới dạng test
và chạy nó, tôi sẽ hiểu 'test' is not recognized as an internal or external command, operable program or batch file.
Tại sao lại như vậy?
Đầu ra của where ng
:
C:\Users\Dread\AppData\Roaming\npm\ng
C:\Users\Dread\AppData\Roaming\npm\ng.cmd
ng
, cmd chạy tệp này. Tôi đã kiểm tra tập tin và thấy nó chỉ đơn giản là chạy tập tin ng đi kèm. Nếu tôi gỡ cài đặt trên toàn cầu ng
và lặp lại các bước trong câu hỏi, nó sẽ ngừng hoạt động. Tôi có đúng trong giả định của mình không?
where ng
gì?