2015-06-29 17 views
5

Tôi đang cố gắng hiểu những gì tôi đang làm sai trong trường hợp này. Tôi có một dự án Node.js những điều sau đây package.json tôimocha đang chạy với thử nghiệm NPM nhưng không phải lệnh CLI mocha thông thường

"scripts": { 
    "test": "mocha --recursive ./src/setup/*.js ./test/**/*.js" 
    }, 
    "dependencies": { 
    "mocha": "^2.2.5" 
    } 

Khi tôi chạy 'thử NPM' các cuộc thử nghiệm mocha đang chạy một cách chính xác:

$ npm test (successful run) 

Tuy nhiên khi tôi cố gắng chỉ cần chạy lệnh mocha tôi có ở đó trong package.json tôi

$ mocha --recursive ./src/setup/*.js ./test/**/*.js" 

này lỗi với:

-sh: mocha: command not found 

Tôi chưa cài đặt mocha trên toàn cầu, tôi chỉ cài đặt nó qua npm cho dự án cụ thể này.

Nếu tôi cài đặt mocha trên toàn cầu thì nó hoạt động. Tại sao nó không hoạt động khi tôi đã cài đặt mocha đơn giản trong các node_modules của thư mục hiện tại, nhưng nó thực hiện với 'npm test'?

Trả lời

7

kịch bản NPM tự động thêm mocha để PATH:

Nếu bạn phụ thuộc vào module đó xác định các kịch bản thực thi, như dãy phòng thử nghiệm, sau đó những người thực thi sẽ được bổ sung vào PATH để thực hiện các kịch bản.

https://docs.npmjs.com/misc/scripts#path

+4

FWIW, những kịch bản thường nằm trong './Node_modules/.bin', mà bạn có thể thêm vào các biến' $ PATH'. – robertklep

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