2016-09-08 33 views
6

Tôi đã cài đặt angular-cli với nút v6.5.0 và npm v3.10.3 vào hộp âm đạo (Scotch) của tôi. Sau khi chạy 'ng serve --port 4201' tôi có thể thấy rằng bản dựng đã thành công và ứng dụng hiện đang phục vụ trên http://localhost:4201/Làm thế nào để chạy angular-cli từ hộp Vagrant?

Tuy nhiên tôi không thể sử dụng địa chỉ trên vì tôi đang chạy trên VM. Tôi đã cố gắng để thêm '127.0.0.1:4201' để lưu trữ tập tin trên máy chủ, nhưng không thể nhận được bất cứ điều gì làm việc.

Thx

Trả lời

2

Vagrant (VM) không kích hoạt sự kiện thay đổi tập tin. Lỗi này được báo cáo cho cộng đồng VirtualBox và được đặt thành sẽ không sửa lỗi. Hiện tại, không thể làm việc với Angular 2 qua Vagrant. Xem this issue on GitHub để thảo luận có liên quan về vấn đề này.

+1

Đây không phải là vấn đề áp phích ban đầu là có. Anh ấy đang cố gắng để đạt được các máy chủ Angular trên máy ảo từ máy chủ, và không. đang nói về các vấn đề với tính năng biên dịch lại tự động do thiếu sự kiện thay đổi tập tin trong vboxfs Các vấn đề hoàn toàn khác nhau –

5

Bạn phải thêm một số cấu hình vào Vagrantfile.

Để trang web truy cập thêm những dòng này (nó đã giúp tôi):

config.vm.network "private_network", ip: "192.168.100.100" 
config.vm.network "forwarded_port", guest: 4200, host: 4200 
config.vm.network "forwarded_port", guest: 49152, host: 49152 

Bạn có thể truy cập vào trang web trên: http://192.168.100.100:4200/

+0

Cảm ơn bạn rất nhiều! Bằng cách này, nodewatcher của bạn hoạt động tốt trên vagrant? Tôi không phản ứng với bất kỳ thay đổi mã nào – rvaliev

+1

Hey @rvaliev, tôi không thấy câu hỏi. Có một giải pháp để sử dụng plugin này: https: // github.com/adrienkohlbecker/lang thang-fsnotify với vagrant, mà làm cho những thay đổi cũng trên khách. –

+0

Cảm ơn bạn. Thật không may sau khi cập nhật phiên bản cuối cùng của angular-cli (1.0.0-beta.17) và Angular 2.0.0 cuối cùng, tôi không thể chạy theo góc. Nó xây dựng thành công, nhưng tôi không thể truy cập dự án từ máy chủ thông qua 192.168.100.100:4200. Trong Chrome, tôi nhận được thông báo như: "192.168.100.100 đã từ chối kết nối". :( – rvaliev

14

Run ng serve như thế này:

ng serve --host 0.0.0.0 

này sẽ làm cho máy chủ trong máy lang thang của bạn truy cập từ bên ngoài sử dụng ip của nó (tôi là 192.168.10.10 sử dụng homestead) và cổng mặc định 4200 cho angular serve (http://192.168.10.10:4200) .

Một số thông tin thêm:

127.0.0.1 là địa chỉ loopback vì vậy nếu bạn gán IP này (hoặc localhost) để cấu hình của máy chủ của bạn, nó không có thể truy cập từ các giao diện mạng khác, do đó bạn không thể truy cập nó từ bên ngoài VM. Nếu bạn liên kết máy chủ của bạn để 0.0.0.0 sẵn có của mình cho tất cả các giao diện

+0

Ngoài ra còn có vấn đề về các sự kiện FS không lan truyền đến Vagrant (như đã đề cập trong phần bình luận trong câu trả lời dưới đây) và ngăn cản biên dịch lại. Tôi thấy rằng bằng cách sử dụng plugin này là cách dễ nhất để làm cho nó hoạt động (vagrant-fsnotify dưới đây yêu cầu lệnh được chạy mỗi lần, điều này không): https://github.com/mhallin/vagrant-notify-forwarder –

+0

Điều này nên được đánh dấu là câu trả lời hay nhất .. – Nique

+0

Trong trường hợp tải lại trực tiếp không hoạt động trong khu vực lang thang, hãy thử 'ng serve --host 0.0.0.0 --poll = 2000' – Kaushal

0

Có nhiều cách bạn có thể làm điều đó, cho bản thân mình, những gì tôi đã làm là đầu tiên tôi cài đặt VMware (Máy ảo), đảm bảo bạn có phiên bản mới nhất.

Sau khi cài đặt thành công vm, tải xuống nút và âm thanh. mở cmd >> định vị nó vào thư mục nơi bạn đang ở, Loại tiếp theo trong Vagrant up và nó sẽ chạy .. Nếu bạn gặp phải bất kỳ sự cố nào khác. thử keying này lang thang ssh [name | id] [- extra_ssh_args] ..

Hy vọng rằng sẽ giúp

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