Đây là một chút cũ, nhưng tôi sẽ trả lời nó chỉ trong trường hợp ai đó gặp phải câu hỏi này.
Trước tiên, bạn nên chạy grunt với màu bị tắt, vì cả bảng điều khiển chẩn đoán và nhật ký triển khai đều gặp mã ANSI. Để thực hiện việc này, hãy chạy grunt --no-color
. Điều này sẽ đưa thông tin STDOUT trở lại vào Console và vào Nhật ký triển khai.
Thứ hai, tôi không khuyên bạn nên sử dụng các phiên bản đã đăng ký của Nút hoặc NPM. Windows Azure đã có những xây dựng trong môi trường, và đã được cấu hình cho các đường dẫn tạm thời đặc biệt và đường dẫn bộ nhớ cache cần thiết cho cả hai để thực hiện tốt nhất của họ.
Project Kudu là công cụ triển khai cấp nguồn cho Azure Deployments, nhưng bạn đã biết điều này, vì bạn có tệp .deployment. Tuy nhiên, Azure Command Line Tools [npm install azure-cli --global
] sẽ giúp bạn dàn dựng một số tập lệnh triển khai tốt hơn sẽ sử dụng cài đặt Node và NPM được cài đặt sẵn của Azure.
azure site deploymentscript –-node
sẽ lấy cho bạn tập lệnh nút cơ sở đó.
Từ đó, một vài sửa đổi là cần thiết để deploy.sh
để làm cho nó thực thi Grunt, đáng tin cậy. Trong phạm vi deploy.sh
là phần #Deployment. Thay thế nội dung của nó như sau:
# Deployment
# ----------
echo Handling node.js grunt deployment.
# 1. Select node version
selectNodeVersion
# 2. Install npm packages
if [ -e "$DEPLOYMENT_SOURCE/package.json" ]; then
eval $NPM_CMD install
exitWithMessageOnError "npm failed"
fi
# 3. Install bower packages
if [ -e "$DEPLOYMENT_SOURCE/bower.json" ]; then
eval $NPM_CMD install bower
exitWithMessageOnError "installing bower failed"
./node_modules/.bin/bower install
exitWithMessageOnError "bower failed"
fi
# 4. Run grunt
if [ -e "$DEPLOYMENT_SOURCE/Gruntfile.js" ]; then
eval $NPM_CMD install grunt-cli
exitWithMessageOnError "installing grunt failed"
./node_modules/.bin/grunt --no-color clean common dist
exitWithMessageOnError "grunt failed"
fi
# 5. KuduSync to Target
"$KUDU_SYNC_CMD" -v 500 -f "$DEPLOYMENT_SOURCE/dist" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;.deployment;deploy.sh"
exitWithMessageOnError "Kudu Sync to Target failed"
này sẽ chạy npm install
, tiếp theo là bower install
(nếu bower.json tồn tại), tiếp theo là grunt clean common dist
(nếu Gruntfile.js tồn tại), và cuối cùng là một KuduSync vào /wwwroot
của bạn. (Lưu ý: thay thế 'sạch chung dist' với bất kỳ nhiệm vụ Grunt bạn cần để chạy.)
Có một số vấn đề khác mà bạn có thể gặp phải. Tôi viết điều này trong một số post on my personal blog, bao gồm một số vấn đề bạn có thể gặp phải.
Khi bạn nói 'Remote Execution console', bạn đang đề cập đến điều gì? Hãy thử khởi chạy Bàn điều khiển Chẩn đoán từ gốc của dịch vụ scm (cùng tên máy chủ với tên git url). Nó có thất bại không? Bạn có thể dán đầu ra chính xác không? Ngoài ra, nếu có một repo tối thiểu bạn có thể chia sẻ, đó sẽ là hữu ích để điều tra. Có thể một cái gì đó đang bị chặn bởi sandbox. –
@DavidEbbo Yea Tôi đang tham khảo Bảng điều khiển chẩn đoán. Nó thất bại ở đó. Tôi chỉ nhận được dấu nhắc C-trở lại. Tôi đang sao chép các tập tin, xóa một số người trong số họ sau khi sao chép chúng (không cần thiết, nhưng một phần của một mô-đun con Git), chạy một vài mẫu và phân tích các biến môi trường. Vì vậy, công cụ khá chuẩn. Phân loại thứ gì bị chặn bởi sandbox? –
Chính xác những gì các khối hộp cát có thể tinh tế. Bạn cũng có thể xem xét Dump Chẩn đoán (https://github.com/projectkudu/kudu/wiki/Investigating-issues#getting-the-diagnostic-dump), có thể có thêm thông tin. Nếu có bất kỳ cách nào bạn có thể chia sẻ một repo tối thiểu mà sẽ cho chúng tôi thấy chính xác những gì bạn đang nhìn thấy, chúng ta sẽ có thể xác định những gì đang xảy ra. –