Chuyển đổi Giữa các Dự án
Một trong những lợi ích chính của Volta là cách xử lý liền mạch các phiên bản công cụ khác nhau trên các dự án. Trang này giải thích cách Volta tự động quản lý môi trường JavaScript của bạn khi bạn di chuyển giữa các dự án.
Chuyển đổi Phiên bản Tự động
Không giống như các trình quản lý phiên bản khác yêu cầu bạn chuyển đổi thủ công giữa các phiên bản công cụ, Volta xử lý điều này tự động dựa trên thư mục hiện tại của bạn.
Nó Hoạt động như thế nào
- Khi bạn chạy một lệnh JavaScript (như
node,npmhoặc một binary gói), shim của Volta chặn lệnh - Volta kiểm tra thư mục hiện tại của bạn để xem bạn có ở trong một dự án có các phiên bản công cụ được ghim không
- Nếu có, Volta sử dụng các phiên bản đã ghim từ
package.jsoncủa dự án đó - Nếu bạn không ở trong một dự án có các phiên bản đã ghim, Volta sử dụng các công cụ mặc định của bạn
Tất cả điều này xảy ra minh bạch mà không cần bất kỳ lệnh bổ sung nào.
Quy trình Làm việc Ví dụ
Hãy tưởng tượng bạn có hai dự án với các yêu cầu Node.js khác nhau:
Dự án A (~/projects/project-a/package.json):
{
"volta": {
"node": "14.19.1",
"npm": "6.14.16"
}
}Dự án B (~/projects/project-b/package.json):
{
"volta": {
"node": "16.14.2",
"npm": "8.5.0"
}
}Quy trình làm việc của bạn có thể trông như thế này:
# Trong Dự án A
cd ~/projects/project-a
node --version # Hiển thị v14.19.1
npm --version # Hiển thị v6.14.16
# Chuyển sang Dự án B
cd ~/projects/project-b
node --version # Tự động hiển thị v16.14.2
npm --version # Tự động hiển thị v8.5.0
# Bên ngoài bất kỳ dự án nào
cd ~
node --version # Hiển thị phiên bản Node mặc định của bạnDự án Lồng nhau
Nếu bạn có các dự án lồng nhau, Volta sẽ sử dụng các phiên bản công cụ từ package.json gần nhất có phần volta.
Ví dụ:
/parent-project/package.json (có phần volta với node@14)
/parent-project/child-project/package.json (có phần volta với node@16)
/parent-project/other-directory/ (không có package.json)Nếu bạn chạy các lệnh trong:
/parent-project/child-project/- Volta sử dụng Node.js 16/parent-project/other-directory/- Volta sử dụng Node.js 14/parent-project/- Volta sử dụng Node.js 14
Binary Gói
Chuyển đổi tự động của Volta cũng áp dụng cho các binary gói. Ví dụ, nếu bạn có một phiên bản TypeScript cụ thể cho dự án và chạy tsc, Volta đảm bảo rằng phiên bản đúng được sử dụng.
Gói Toàn cục so với Cục bộ
Khi bạn chạy một binary gói:
- Nếu binary tồn tại trong
node_modules/.bin/của dự án của bạn, Volta sử dụng phiên bản đó - Nếu không, nhưng gói được cài đặt toàn cục qua Volta, nó sử dụng phiên bản đó
- Nếu không, nó hiển thị lỗi rằng lệnh không được tìm thấy
Khắc phục Sự cố
Nếu bạn đang gặp vấn đề với chuyển đổi phiên bản:
- Xác minh dự án của bạn có phần
voltatrongpackage.json - Chạy
volta list allđể kiểm tra các công cụ đã cài đặt của bạn - Kiểm tra rằng các công cụ bạn cần được ghim vào dự án của bạn hoặc được cài đặt làm phiên bản mặc định
- Chạy
volta which nodeđể xem phiên bản Node.js nào mà Volta đang sử dụng và tại sao