Hacker News

Tôi đã sửa lỗi phát triển bản địa của Windows

Tôi đã sửa lỗi phát triển bản địa của Windows Phân tích toàn diện về bản sửa lỗi này cung cấp khả năng kiểm tra chi tiết các thành phần cốt lõi của nó và hệ điều hành kinh doanh Mewayz.

9 đọc tối thiểu

Mewayz Team

Editorial Team

Hacker News

Tôi đã sửa lỗi Phát triển bản địa của Windows: Phân tích đầy đủ về những gì thực sự hoạt động

Quá trình phát triển nguyên bản của Windows đã gặp khó khăn do sự phân mảnh của chuỗi công cụ, sự phụ thuộc quá lớn và sự không nhất quán của môi trường trong nhiều năm — nhưng sau nhiều tháng thử nghiệm, cuối cùng tôi đã tìm ra một quy trình làm việc giúp loại bỏ sự hỗn loạn. Hướng dẫn này trình bày chính xác những gì đã hỏng, những gì tôi đã thử và thiết lập hiện cung cấp năng lượng cho các bản dựng sản xuất của tôi mà không cần một giải pháp WSL nào.

Tại sao quá trình phát triển Windows Native luôn là một cơn ác mộng như vậy?

Câu trả lời trung thực là Windows chưa bao giờ được thiết kế với các nhà phát triển là công dân chính. Các hệ thống dựa trên Unix đã đưa việc quản lý gói, tập lệnh shell và cách ly môi trường vào DNA của chúng ngay từ đầu. Windows đã khắc phục những điều này trong nhiều thập kỷ, tạo ra một mớ hỗn độn nhiều lớp gồm các xung đột thời gian chạy PowerShell, CMD, Chocolatey, Winget, MSVC và các thảm họa biến đổi PATH có thể khiến một kỹ sư cấp cao phải chệch hướng trong một buổi chiều.

Các triệu chứng quen thuộc với bất kỳ ai đã từng làm việc trong không gian này: một gói cài đặt chính xác trên một máy và không hoạt động trên máy khác, các công cụ xây dựng tham chiếu các phiên bản trình biên dịch khác nhau tùy thuộc vào khối lượng công việc Visual Studio mà bạn đã cài đặt lần cuối và các dự án Node.js chạy hoàn hảo trong WSL2 gây ra các lỗi EPERM khó hiểu trên hệ thống tệp gốc. Đây không phải là trường hợp đặc biệt — chúng là trải nghiệm mặc định cho hầu hết các nhà phát triển Windows.

Cơ chế cốt lõi nào thực sự bị hỏng trong quá trình thiết lập của tôi?

Sau khi kiểm tra môi trường của mình một cách có hệ thống, tôi đã xác định được ba nguyên nhân gốc rễ gây ra khoảng 80% lỗi xây dựng và sự không nhất quán trong môi trường:

Thư viện thời gian chạy xung đột: Nhiều phiên bản của Microsoft Visual C++ Redistributable cùng tồn tại mà không có thứ tự giải quyết rõ ràng, gây ra lỗi tra cứu DLL trong mô-đun gốc.

Ô nhiễm PATH: Mười bảy công cụ riêng biệt đã thêm các mục vào hệ thống PATH theo thời gian, trong đó một số công cụ che dấu lẫn nhau và trỏ đến các thư mục cài đặt cũ.

💡 BẠN CÓ BIẾT?

Mewayz replaces 8+ business tools in one platform

CRM · Hóa đơn · Nhân sự · Dự án · Đặt chỗ · Thương mại điện tử · POS · Phân tích. Gói miễn phí vĩnh viễn có sẵn.

Bắt đầu miễn phí →

Thiếu khả năng cách ly môi trường cấp dự án: Không giống như quy trình công việc Unix nơi các tệp .env và lệnh shell là công dân hạng nhất, Windows không có cơ chế nhất quán để xác định phạm vi các biến môi trường cho một dự án mà không có công cụ của bên thứ ba.

Xung đột cuối dòng Git: Việc xử lý CRLF/LF hỗn hợp giữa các công cụ Windows gốc và thư viện đa nền tảng đã khiến tổng kiểm tra không thành công trên các tệp khóa, làm hỏng các bản cài đặt có thể lặp lại.

Yêu cầu cấp phép nâng cao đối với liên kết tượng trưng: Nhiều trình quản lý gói dựa vào liên kết tượng trưng, ​​trên Windows yêu cầu Chế độ nhà phát triển hoặc đặc quyền của quản trị viên - một cài đặt mà hầu hết các máy doanh nghiệp đều vô hiệu hóa theo chính sách.

"Vấn đề không bao giờ là Windows không thể thực hiện phát triển tự nhiên — mà là không ai tập hợp được sự kết hợp phù hợp giữa các công cụ với cấu hình có chủ ý. Khi bạn coi môi trường nhà phát triển của mình như một sản phẩm cần các quyết định về kiến ​​trúc, mọi thứ sẽ thay đổi."

Tôi thực sự đã khắc phục quy trình phát triển Windows Native như thế nào?

Cách khắc phục không phải là một công cụ hay một tập lệnh ma thuật nào. Đó là sự tái cấu trúc có chủ ý về cách môi trường được lắp ráp, xác định phạm vi và duy trì. Nền tảng bắt đầu bằng việc bật Chế độ nhà phát triển ở cấp hệ điều hành để mở khóa việc tạo liên kết tượng trưng mà không cần nâng cao. Từ đó, Scoop thay thế tổ hợp trình cài đặt đặc biệt vì nó hoạt động hoàn toàn trong không gian người dùng, lưu trữ các bảng kê khai trong phần kiểm soát phiên bản và xử lý việc quản lý miếng chêm một cách rõ ràng.

Đối với các dự án Node.js cụ thể, việc chuyển sang Volta để quản lý phiên bản đã loại bỏ các lỗi EPERM gây khó chịu cho npm trên toàn cầu. Volta chặn các cuộc gọi nhị phân ở lớp shim và giải quyết phiên bản thời gian chạy chính xác cho mỗi dự án mà không cần chạm vào PATH của hệ thống. Kết hợp với khóa .volta đã cam kết trong pack.json, tính chẵn lẻ của môi trường giữa các máy sẽ trở nên tự động thay vì mang tính khát vọng.

Phần cuối cùng là áp dụng kỷ luật .env cấp dự án được thực thi bởi direnv được chuyển sang Windows thông qua Scoop - đảm bảo mọi dự án đều mang bối cảnh môi trường riêng của nó, kích hoạt khi vào thư mục và xóa khi thoát

Streamline Your Business with Mewayz

Mewayz brings 207 business modules into one platform — CRM, invoicing, project management, and more. Join 138,000+ users who simplified their workflow.

Start Free Today →

Dùng Thử Mewayz Miễn Phí

Nền tảng tất cả trong một cho CRM, hóa đơn, dự án, Nhân sự & hơn thế nữa. Không cần thẻ tín dụng.

Bắt đầu quản lý doanh nghiệp của bạn thông minh hơn ngay hôm nay.

Tham gia 30,000+ doanh nghiệp. Gói miễn phí vĩnh viễn · Không cần thẻ tín dụng.

Tìm thấy điều này hữu ích? Chia sẻ nó.

Sẵn sàng áp dụng vào thực tế?

Tham gia cùng 30,000+ doanh nghiệp đang sử dụng Mewayz. Gói miễn phí vĩnh viễn — không cần thẻ tín dụng.

Bắt đầu Dùng thử Miễn phí →

Sẵn sàng hành động?

Bắt đầu dùng thử Mewayz miễn phí của bạn ngay hôm nay

All-in-one business platform. No credit card required.

Bắt đầu miễn phí →

Dùng thử 14 ngày miễn phí · Không cần thẻ tín dụng · Hủy bất kỳ lúc nào