2016-02-17 17 views
5

Tôi có một tập tin package.json trông giống như:Force nút để sử dụng git bash trên cửa sổ

{ 
    "name": "APP", 
    "version": "3.0.0", 
    "private": true, 
    "scripts": { 
    "start": "node app.js", 
    "test": "./test/dbLoad && env db=test test=1 jasmine" 
    } 
} 

Khi tôi chạy thử nghiệm NPM, tôi nhận được một lỗi:

'.' is not recognized as an internal or external command 

Tôi đoán điều này là do nút đang sử dụng windows cmd.exe. Lệnh hoạt động tốt nếu tôi mở đầu nó bằng bash. Tôi có thể thay đổi cài đặt cấu hình của một số loại trong nút sao cho nó tự động sử dụng bash không?

Trả lời

5

Có bạn có thể!

Trước khi chạy npm run bạn nên làm:

set comspec=your_bash.exe_folder 

Gói NPM, kiểm tra môi trường comspec, và chạy nó trên win32. Theo mặc định ComSpec=C:\windows\system32\cmd.exe

Để biết thêm thông bạn có thể xem mã nguồn của NPM: lifecycle.js (Line 219)

if (process.platform === 'win32') { 
    sh = process.env.comspec || 'cmd' 
    shFlag = '/d /s /c' 
    conf.windowsVerbatimArguments = true 
    } 

Bạn có thể đặt comspec môi trường, để bash bạn theo mặc định bằng cách sử dụng sổ đăng ký. Nếu bạn cần giúp đỡ, xin vui lòng bình luận.

+0

Điều này có thay đổi hệ vỏ cho toàn bộ hệ thống của tôi hay chỉ khi tôi chạy nút? –

+2

đã thử nhập tập comspec = 'C: \ Program Files \ Git \ bin \ bash.exe' và nó không dính. Cũng cố gắng thiết lập biến ComSpec thông qua bảng điều khiển và chạy 'npm test' vẫn không thành công với cùng một lỗi. –

+0

Tôi đã thử trên máy tính của mình và nó hoạt động. Bạn đã gõ 'set compspec = ...' không có dấu ngoặc kép chưa? Bạn có thấy rằng comspec được cập nhật không? (bằng cách sử dụng 'set com') – Aminadav

Các vấn đề liên quan