2016-01-26 46 views
10

Tôi đang sử dụng khung Ionic để xây dựng các ứng dụng lai. Theo trang web chính thức, tôi cần tải phiên bản 4.2.4 của Node.js, bao gồm trình quản lý gói npm. Một trong những phụ thuộc cần thiết bởi Ionic là cordova để tôi chạy lệnh sau đây để có được nónpm cài đặt không hoạt động khi chạy npm install cordova

C:\Users\ferrero>npm install -g cordova 

Sau đó, giao diện điều khiển bản ghi

npm info it worked if it ends with ok 
npm verb cli [ 'C:\\Program Files\\nodejs\\node.exe', 
npm verb cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 
npm verb cli 'prefix', 
npm verb cli '-g' ] 
npm info using [email protected] 
npm info using [email protected] 
npm verb exit [ 0, true ] 
npm info ok 
npm info it worked if it ends with ok 
npm verb cli [ 'C:\\Program Files\\nodejs\\node.exe', 
npm verb cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm- cli.js', 
npm verb cli 'install', 
npm verb cli 'cordova' ] 
npm info using [email protected] 
npm info using [email protected] 
npm verb config Skipping project config: C:\Users\ferrero/.npmrc. 
(matches userconfig) 
npm verb install initial load of C:\Users\ferrero\package.json 
npm verb readDependencies loading dependencies from C:\Users\ferrero\package.json 
npm verb cache add spec cordova 
npm verb addNamed "latest" is being treated as a dist-tag for cordova 
npm info addNameTag [ 'cordova', 'latest' ] 
npm verb addNameTag registry:https://registry.npmjs.org/cordova not in flight; fetching 
npm verb request uri https://registry.npmjs.org/cordova 
npm verb request no auth needed 
npm info attempt registry request try #1 at 16:47:06 
npm verb request id 62f85abc5c5b7cd5 
npm verb etag "6KQ69KRX02Y8MUJFT56H9DE6N" 
npm http request GET https://registry.npmjs.org/cordova 
npm info retry will retry, error on last attempt: Error: self signed certificate in certificate chain 

Như bạn có thể nhìn thấy từ nhật ký, NPM chạy phiên bản 2.14 .12 và nó phàn nàn rằng nguyên nhân là chứng chỉ tự ký - có thể được phát hành bởi https://registry.npmjs.org/cordova. Vì vậy, để khắc phục vấn đề này, tôi chạy

npm config set registry=http://registry.npmjs.org 

Và, sau đó (chỉ là một phần liên quan)

C:\Users\ferrero>npm install -g cordova 

npm verb cache add spec cordova 
npm verb addNamed "latest" is being treated as a dist-tag for cordova 
npm info addNameTag [ 'cordova', 'latest' ] 
npm verb addNameTag registry:http://registry.npmjs.org/cordova not in flight; fetching 
npm verb request uri http://registry.npmjs.org/cordova 
npm verb request no auth needed 
npm info attempt registry request try #1 at 16:59:34 
npm verb request id 359f93cb3aa8b76e 
npm verb etag "6KQ69KRX02Y8MUJFT56H9DE6N" 
npm http request GET http://registry.npmjs.org/cordova 
npm http 304 http://registry.npmjs.org/cordova 
npm verb headers { 
    date: 'Tue, 26 Jan 2016 18:59:34 GMT', 
    npm verb headers via: '1.1 varnish', 
    npm verb headers 'cache-control': 'max-age=300', 
    npm verb headers etag: '"6KQ69KRX02Y8MUJFT56H9DE6N"', 
    npm verb headers age: '263', 
    npm verb headers connection: 'keep-alive', 
    npm verb headers 'x-served-by': 'cache-atl6230-ATL', 
    npm verb headers 'x-cache': 'HIT', 
    npm verb headers 'x-cache-hits': '1', 
    npm verb headers 'x-timer': 'S1453834774.362657,VS0,VE1', 
    npm verb headers vary: 'Accept' 
} 
npm verb etag http://registry.npmjs.org/cordova from cache 
npm verb get saving cordova to C:\Users\ferrero\AppData\Roaming\npm-cache\registry.npmjs.org\cordova\.cache.json 
npm verb addNamed "5.4.1" is a plain semver version for cordova 
npm verb addRemoteTarball http://registry.npmjs.org/cordova/-/cordova-5.4.1.tgz 
not in flight; adding 
npm verb addRemoteTarball [ 'http://registry.npmjs.org/cordova/-/cordova-5.4.1.tgz', 
npm verb addRemoteTarball 'bc56bc1d3c5387a7926408212dfbce59002f9d76' ] 

Lần này, nó không phàn nàn bất cứ điều gì khác. Thay vào đó, chỉ báo tải - ký tự ống - tiếp tục chạy và chạy. Vì vậy, tôi nên làm gì để tải xuống sự phụ thuộc như vậy?

+2

Tôi không chắc nó có liên quan, nhưng bạn nên gõ NPM cài đặt cordova -g không chỉ NPM cài đặt cordova. Tôi biết có một số vấn đề với các phiên bản mới nhất của node/npm nhưng nó đã được sửa với cordova 5.4 và> tôi nghĩ vậy. Tôi vừa mới cài đặt một máy tính mới với phiên bản mới nhất của nút và không có vấn đề cài đặt cordova. – QuickFix

+0

Theo ionic bắt đầu - http://ionicframework.com/getting-started/ -, nó đòi hỏi Node.js 4 vì "Node 5 không hoạt động vào lúc này!". Do đó, tôi đã tải xuống Node.js 4.2.4 –

+0

@ArthurRonald Có thể thử 'npm uninstall -g cordova', sau đó' npm install -g npm', sau đó 'npm --loglevel info install -g cordova' và tại ít nhất nhìn thấy những gì đang gặp khó khăn? – heenenee

Trả lời

2

Dường như chúng tôi đang xem xét hai vấn đề khác biệt ở đây.

Lỗi chứng chỉ có thể do proxy SSL gửi đi. Ai đó, rất có thể là chủ nhân của bạn, đang mở tất cả lưu lượng truy cập SSL trên đường ra. Để khắc phục vấn đề này, bạn cần phải thông báo cho NPM rằng chứng chỉ này được chấp nhận bằng cách nhập chứng chỉ CA của proxy đang sử dụng.

npm config set cafile = "/the/certificate/file.pem" 

Bạn cũng có thể cần phải đặt địa chỉ proxy cho NPM cũng như:

npm config set proxy http://proxy.example.com:3128 
npm config set https-proxy http://proxy.example.com:3128 

Các không tương thích với nút 5.0 dường như đã được cố định theo một nghiên cứu của tôi. Tài liệu dường như đã lỗi thời.

Lỗi trong Cordova có thể là vấn đề là missing method in the Q promises library, mà Cordova phụ thuộc.

Vào tháng 11 năm 2015, người dùng có thể use Ionic successfully with node 5.1.0.

+0

Cài đặt bổ sung có thể được tìm thấy tại đây: https://gist.github.com/erkobridee/4061363 (tiếng Bồ Đào Nha) –

0

Ok, tôi nghĩ các lưu ý về nút 4 vs nút 5 là từ những ngày cũ của cordova 5,0 khi có một vấn đề khi cài đặt cordova với nút 5.

Kể từ đó họ phát hành cordova 5.4 và cordova 6 nơi không có vấn đề gì khác với nút 5.

Tôi thường không sử dụng ion, nhưng để chắc chắn, với cài đặt mới của nút v5.4.1, nơi tôi đã chạy cordova 5.4 (cài đặt cũng với nút 5.4. 1), I:

  • cài đặt cordova 6: npm install -g cordova
  • cài đặt ion 1.7.13: npm install -g ionic
  • tạo ra một ứng dụng ion: ionic start myApp tabs
  • chạy các ứng dụng trên một thiết bị Android

cd myApp cordova platform add android ionic run android

Và tất cả mọi thứ đã làm việc một cách hoàn hảo.

Vì vậy, tôi giả định rằng bạn có thể thử cài đặt phiên bản nút mới nhất một cách an toàn để xây dựng ứng dụng với ionic. Và có lẽ nút 5.4.1 sẽ giải quyết vấn đề bạn gặp phải với nút 4.2.4?

0

Vấn đề ở đây là bạn đang sử dụng chứng chỉ tự ký theo lỗi self signed certificate in certificate chain.

Nếu bạn muốn sửa chữa lỗi ở đây một số thông tin cho bạn:

Nhưng nếu không có cách nào để đối phó với vấn đề chỉ cần thiết lập registry http (thực hiện về config từ)

npm config set registry http://registry.npmjs.org/ 
-1

Một điều tương tự đã xảy ra với tôi trước đây và những gì làm việc cho tôi lúc đó là.

Trước tiên, gỡ cài đặt nút và npm. Thứ hai, xóa thư mục npm và npm-cache trên C: \ Users \ yourname \ AppData \ Roaming. Và cuối cùng, tải xuống lại và cài đặt lại bản sao mới của node.js.

Tôi không chắc chắn nếu điều này là sẽ làm việc về trường hợp của bạn nhưng hy vọng điều này sẽ giúp !!

2

Ngay cả khi tôi phải đối mặt với cùng một vấn đề trong khi làm bất kỳ lệnh npm install -g XXX, nó đã được giải quyết bởi npm config set strict-ssl false

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