Đặt câu hỏi và nhận tóm tắt tài liệu bằng cách tham chiếu trang này và nhà cung cấp AI bạn chọn
Lịch sử phiên bản
- "Đã tích hợp vào intlayer(); khởi tạo tài liệu"v9.0.025/6/2026
Nội dung của trang này đã được dịch bằng AI.
Xem phiên bản mới nhất của nội dung gốc bằng tiếng AnhIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
intlayerCompiler
intlayerCompiler là một plugin Vite quét các tệp nguồn component để tìm các khai báo nội dung Intlayer trực tiếp (inline) — nội dung được định nghĩa trực tiếp bên trong một component thay vì trong một tệp .content.ts riêng biệt — và ghi chúng vào các tệp JSON từ điển trong giai đoạn transform (chuyển đổi).
Từ phiên bản Intlayer v9,intlayerCompilerđược tự động bao gồm bên trong plugin chínhintlayer()khi cả hai cấu hìnhcompiler.enabledlàtruevàcompiler.outputđược thiết lập trong cấu hình Intlayer của bạn. Bạn chỉ cần đăng ký riêng khi muốn kiểm soát hoàn toàn cấu hình dành riêng cho trình biên dịch.
Cách sử dụng
Như một phần của intlayer() (khuyên dùng, v9+)
Bật trình biên dịch thông qua cấu hình Intlayer của bạn:
Sao chép mã vào clipboard
// intlayer.config.tsimport { defineConfig } from "intlayer";export default defineConfig({ compiler: { enabled: true, output: "./src/dictionaries", // nơi ghi các từ điển đã được trích xuất },});Sau đó sử dụng plugin tiêu chuẩn mà không cần đăng ký thêm:
Sao chép mã vào clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Độc lập (khi cần thiết)
Sao chép mã vào clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [intlayerCompiler()],});Các tùy chọn
Sao chép mã vào clipboard
import type { IntlayerCompilerOptions } from "vite-intlayer";Mở bảng trong một cửa sổ bật lên để xem toàn bộ nội dung dữ liệu một cách rõ ràng
| Tùy chọn | Kiểu dữ liệu | Mô tả |
|---|---|---|
configOptions | GetConfigurationOptions | Các giá trị ghi đè cấu hình Intlayer được chuyển tiếp đến getConfiguration(). |
compilerConfig | Partial<CompilerConfig> | Các ghi đè cho phần cấu hình dành riêng cho trình biên dịch (ví dụ: enabled, output, filesList). |
Ví dụ
Sao chép mã vào clipboard
intlayerCompiler({ configOptions: { configFile: "./config/intlayer.config.ts" }, compilerConfig: { enabled: true, output: "./src/dictionaries" },});Cách thức hoạt động
Giai đoạn Transform (Chuyển đổi)
Đối với mỗi tệp nguồn khớp với compiler.filesList, plugin trình biên dịch sẽ:
- Chuyển nội dung tệp qua hàm
extractContenttừ thư viện@intlayer/babel. - Gọi hàm
onExtractcho mỗi khai báo được tìm thấy, thao tác này sẽ ghi JSON từ điển kết quả vào đường dẫncompiler.output. - Trả về mã nguồn đã chuyển đổi với các khai báo inline được thay thế bằng các lệnh gọi tiêu chuẩn
useIntlayer('key')/getIntlayer('key').
Các loại tệp được hỗ trợ: .ts, .tsx, .js, .jsx, .vue, .svelte, .astro.
HMR (Hot Module Replacement - Thay thế mô-đun nóng)
Khi một tệp component được lưu ở chế độ phát triển (development mode), trình biên dịch sẽ:
- Phát hiện tệp thay đổi thông qua hook
handleHotUpdatecủa Vite. - Trích xuất lại nội dung từ tệp đã cập nhật.
- Ghi tệp JSON từ điển đã cập nhật.
- Kích hoạt tải lại toàn bộ trang (
server.ws.send({ type: 'full-reload' })).
Một khoảng thời gian debounce (chống rung) 500 ms ngăn việc ghi từ điển (cũng kích hoạt sự kiện thay đổi tệp) tạo ra một vòng lặp trích xuất vô hạn.
Khử trùng lặp (Deduplication)
intlayerCompiler sử dụng cùng một cơ chế khử trùng lặp createPrimaryInstanceGuard giống như các plugin đi kèm khác. Khi cả intlayer() (gộp cả trình biên dịch) và lệnh gọi intlayerCompiler() thủ công đều xuất hiện, chỉ có phiên bản đã đăng ký đầu tiên chạy — không có từ điển nào bị ghi đè hai lần.