Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Bảo Trì Máy Tính

Khắc phục lỗi Node‑Gyp Rebuild thất bại trên macOS: Hướng dẫn từng bước

node-gyp là một công cụ tiện lợi cho phép các nhà phát triển biên dịch các mô-đun bổ sung gốc của Node trên nhiều nền tảng. Nó rất phổ biến và được sử dụng rộng rãi ngày nay, vì vậy thường được bao gồm làm phần phụ thuộc cho hầu hết các gói NPM.

Trên hầu hết các hệ điều hành, node-gyp không gây ra vấn đề gì. Việc cài đặt node-gyp và các gói NPM khác thường diễn ra suôn sẻ và hiệu quả. Tuy nhiên, không phải tất cả người dùng đều như vậy. Một số nhà phát triển báo cáo gặp khó khăn khi rebuild node-gyp trên macOS, dẫn đến trải nghiệm kém cho các nhà phát triển bị ảnh hưởng. Lỗi này cũng dẫn đến nhiều cạm bẫy và tạo ra nhiều cách để mọi thứ có thể sai sót.

Vấn đề này không phải là mới. Các nhà phát triển sử dụng các phiên bản macOS cũ đã từng gặp lỗi này trước đây. Với việc phát hành macOS Catalina, một số nhà phát triển cũng báo cáo gặp lỗi rebuild node-gyp thất bại trên Mac sau khi nâng cấp lên phiên bản macOS mới. Lỗi này đã ngăn cản các nhà phát triển cài đặt các gói node-gyp họ cần.

Nếu bạn đã gặp lỗi này, bạn sẽ hiểu việc node-gyp rebuild thất bại trên Mac có多么令人沮丧. Bạn không thể tiến triển với việc phát triển ứng dụng hoặc phần mềm trừ khi khắc phục được lỗi này. May mắn thay, chúng tôi đã làm tất cả công việc cho bạn. Nếu bạn thấy không thể tiến hành dự án vì lỗi này, bạn có thể thử bất kỳ giải pháp nào được liệt kê dưới đây để giải quyết nó.

Mẹo chuyên nghiệp: Quét Mac để phát hiện vấn đề hiệu suất, tệp rác, ứng dụng độc hại và mối đe dọa bảo mật có thể gây ra sự cố hệ thống hoặc làm chậm hiệu suất.

Node-Gyp là gì?

node-gyp là công cụ dùng để biên dịch Node.js Addons, là các mô-đun Node.js gốc được viết bằng C hoặc C++. Các mô-đun này cần được biên dịch trên máy của bạn bằng công cụ như node-gyp. Node-gyp hoạt động trên Windows, macOS và Linux.

Node-gyp thường dễ sử dụng nhờ giao diện nhất quán. Bạn cũng có thể dùng các lệnh giống nhau để build hoặc rebuild mô-đun trên các nền tảng khác nhau. Node-gyp cũng hỗ trợ nhiều phiên bản mục tiêu của Node.

Nếu bạn gặp lỗi npm gyp trên Mojave hoặc các phiên bản macOS cũ hơn, bạn cần kiểm tra lại các yêu cầu để node-gyp hoạt động.

Dưới đây là các yêu cầu cần cài đặt để node-gyp hoạt động trên macOS:

  • Python v2.7, v3.5, v3.6 hoặc v3.7
  • Xcode – tiện ích cho phép nhà phát triển tạo ứng dụng trên macOS, iOS và iPadOS.

Bạn cũng cần cài đặt đúng phiên bản Xcode Command Line Tools, là một phần của bộ công cụ và thư viện phát triển phần mềm của Xcode.

Để cài đặt Xcode Command Line Tools, hãy làm theo hướng dẫn dưới đây:

  1. Khởi động Xcode trên Mac của bạn.
  2. Chọn Preferences từ menu Xcode.
  3. Dưới panel General, nhấp vào Downloads.
  4. Khi cửa sổ Downloads mở ra, nhấp vào tab Components.
  5. Nhấp vào nút Install bên cạnh Command Line Tools.
  6. Đăng nhập bằng tài khoản Apple Developer để hoàn tất quá trình cài đặt.

Nếu bạn đang chạy macOS Catalina, bạn có thể tải xuống phiên bản phù hợp của Command Line Tools cho Xcode cho phiên bản Catalina của bạn từ đây. Đối với macOS 10.15.3, tên tệp nên là Command_Line_Tools_for_Xcode_11.3.1.dmg. Khi bạn đã cài đặt đúng các thành phần, bạn nên có thể build bằng node-gyp thành công. Nếu bạn gặp lỗi node-gyp rebuild thất bại trên Mac, bạn cần xem lại các thành phần này để tìm hiểu điều gì đã sai.

Cách giải quyết lỗi Node-gyp Rebuild

Việc cài đặt một mô-đun node là quá trình dễ dàng. Bạn chỉ cần chạy các lệnh cụ thể và mọi thứ nên ổn. Nếu bạn gặp lỗi node-gyp rebuild thất bại trên Mac, bạn cần lùi lại để tìm hiểu điều gì đã xảy ra.

Nhưng trước khi làm điều đó, đây là một số bước khắc phục sự cố cơ bản bạn nên thử:

  1. Khởi động lại máy tính để loại bỏ các lỗi tạm thời có thể ảnh hưởng đến hệ thống.
  2. Đóng tất cả các ứng dụng không cần thiết để giải phóng tài nguyên máy tính.
  3. Tạm thời vô hiệu hóa phần mềm bảo mật, như chương trình chống virus hoặc chống mã độc.
  4. Dọn dẹp hệ thống bằng ứng dụng sửa chữa Mac.

Nếu bạn vẫn gặp lỗi rebuild node-gyp, hãy xem các giải pháp dưới đây và xem giải pháp nào phù hợp với bạn.

Sửa lỗi 1: Kiểm tra lại các thành phần bắt buộc.

Điều đầu tiên bạn cần làm khi gặp lỗi npm gyp trên Mojave hoặc các phiên bản macOS khác là kiểm tra lại các yêu cầu cài đặt của node-gyp. Như đã đề cập ở phần trên, bạn cần ba thành phần để nó hoạt động, bao gồm:

  • Python
  • Xcode
  • Xcode Command Line Tools

Đừng quên cài đặt ngôn ngữ C và C++, sẽ cần thiết để biên dịch các mô-đun. Nếu thiếu bất kỳ thành phần nào hoặc thành phần đó không hoạt động, bạn chắc chắn sẽ gặp lỗi rebuild thất bại. Cài đặt lại thành phần bị thiếu hoặc lỗi sẽ giúp khắc phục vấn đề.

Sửa lỗi 2: Cập nhật các thành phần Node-Gyp của bạn.

Đôi khi cài đặt các thành phần này là chưa đủ. Bạn cần đảm bảo bạn đang sử dụng phiên bản đúng cho macOS của mình. Bạn có thể chọn giữa Python v2.7, v3.5, v3.6 hoặc v3.7, tùy thuộc vào phiên bản nào phù hợp với bạn. Đối với Xcode, bạn có thể tải xuống từ liên kết này. Bạn cũng cần cài đặt phiên bản mới nhất của node-gyp cho chắc chắn.

Sửa lỗi 3: Thực hiện kiểm tra Acid Test.

Bạn có thể kiểm tra xem Xcode Command Line Tools trên máy tính của bạn đã được cài đặt đúng cách và sẽ hoạt động với node-gyp chưa bằng cách chạy acid test theo các bước sau:

  1. Trên Xcode, chạy lệnh này:
    /usr/sbin/pkgutil –packages | grep CL
  2. Nếu bạn thấy com.apple.pkg.CLTools_Executables được liệt kê, thì bạn sẽ không gặp vấn đề. Nếu không, bài kiểm tra này đã thất bại và bạn cần cài đặt lại.
  3. Chạy lệnh tiếp theo:
    /usr/sbin/pkgutil –pkg-info com.apple.pkg.CLTools_Executables
  4. Bạn nên thấy version: 11.0.0 (hoặc mới hơn) được liệt kê. Nếu không, bài kiểm tra này cũng thất bại và bạn cần cài đặt lại.

Sửa lỗi 4: Chuyển sang phiên bản Python khác.

Nhiều nhà phát triển bị ảnh hưởng lưu ý rằng thay đổi phiên bản Python được sử dụng cho môi trường hoạt động đã giúp khắc phục vấn đề cho họ. Điều này liên quan đến sự tương thích giữa phiên bản macOS, phiên bản Node và phiên bản Python bạn đang sử dụng. Một số người dùng thấy rằng các phiên bản Python cũ hơn, như v2.7, ổn định hơn các phiên bản mới hơn. Hãy thử nghiệm với các phiên bản khác nhau và xem phiên bản nào hoạt động cho bạn.

Tóm tắt

Gặp lỗi node-gyp rebuild thất bại trên Mac có thể là rắc rối và tìm hiểu nguyên nhân có thể lãng phí rất nhiều thời gian. Vì vậy, nếu bạn gặp lỗi này, hãy tham khảo hướng dẫn trên để biết chính xác phải làm gì để khắc phục lỗi.