Skip to content

Workspace

Chi tiết về cách sử dụng Volta trong môi trường workspace, nơi có nhiều dự án trong một repo và tất cả chúng đều muốn chia sẻ cài đặt Volta.

TIP

Tính năng này được thêm trong Volta 0.8.2, nó sẽ không hoạt động trên các phiên bản trước.

Mở rộng Cấu hình

Trong phần "volta" của package.json, bạn có thể chỉ định một mục với key "extends". Giá trị của mục đó nên là một đường dẫn đến một file JSON khác cũng có phần "volta". Các đường dẫn tương đối sẽ được phân giải tương đối so với file mà chúng được đặt. Bất kỳ cài đặt Volta nào (ví dụ: phiên bản "node" hoặc "yarn") sẽ được hợp nhất với các cài đặt từ file được trỏ đến bởi "extends", với ưu tiên được dành cho file hiện tại. Vì vậy, nếu bạn muốn có một phiên bản Node duy nhất cho tất cả các dự án của mình, bạn sẽ đặt các phiên bản đó ở root, và sau đó mỗi dự án sẽ cần chỉ "extends": "../path/to/root/package.json".

Ví dụ

Với cấu trúc thư mục và nội dung package.json sau:

.
├── package.json
└── packages
    ├── cli
    │   └── package.json
    └── utils
        └── package.json
  • package.json
json
{
  "volta": {
    "node": "12.16.1",
    "yarn": "1.22.4"
  }
}
  • packages/cli/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}
  • packages/utils/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}

Chạy node ở bất kỳ đâu trong workspace sẽ khiến bạn sử dụng Node 12.16.1. Và nếu bạn cập nhật phiên bản đó trong package.json root, nó sẽ tự động được sử dụng trong tất cả các dự án, mà không cần phải sao chép cài đặt trong mỗi dự án con.

Ghim Công cụ

Khi bạn chạy volta pin để chọn một phiên bản công cụ trong một workspace, Volta sẽ luôn thêm các cài đặt đó vào package.json gần nhất mà nó tìm thấy. Vì vậy, trong ví dụ ở trên, nếu bạn chạy volta pin node@14 trong dự án con packages/utils, phiên bản Node mới sẽ được ghi vào packages/utils/package.json và sẽ chỉ áp dụng cho dự án con utils, không phải cho bất kỳ dự án nào khác. Điều này cho phép bạn dễ dàng tùy chỉnh phiên bản công cụ trên cơ sở từng dự án.

Nếu bạn muốn sử dụng volta pin để thay đổi cấu hình root, trước tiên cd vào root workspace và sau đó chạy volta pin từ đó.

Hooks

Nếu dự án của bạn sử dụng hooks dự án, bạn có thể đặt chúng trong thư mục .volta trong một dự án con hoặc trong thư mục .volta ở root. Volta sẽ tìm kiếm hooks ở mỗi vị trí được trỏ đến bởi key "extends", để các cài đặt có thể được tùy chỉnh ở bất kỳ cấp độ nào cần thiết.

Binary Cục bộ Dự án

Ngoài việc tìm kiếm hooks ở mỗi cấp, Volta cũng sẽ xem xét mỗi cấp để phát hiện các phụ thuộc cục bộ dự án để sử dụng khi chạy một công cụ bên thứ ba. Nó sẽ cố gắng tìm nó trong node_modules/.bin tương đối so với mỗi file được tham chiếu bởi "extends".

Released under the BSD 2-Clause License.