Tài liệu này được dịch bởi AI. Đối với bất kỳ thông tin không chính xác nào, vui lòng tham khảo phiên bản tiếng Anh
Dù bạn clone mã nguồn từ Git hay khởi tạo dự án bằng create-nocobase-app, dự án NocoBase được tạo ra về bản chất đều là một monorepo (kho lưu trữ đa gói) dựa trên Yarn Workspace.
Ví dụ sau đây sử dụng my-nocobase-app/ làm thư mục dự án. Có thể có một vài khác biệt nhỏ tùy thuộc vào môi trường:
Thư mục packages/ chứa các module cốt lõi và các gói mở rộng của NocoBase. Nội dung của thư mục này phụ thuộc vào nguồn gốc dự án:
create-nocobase-app: Mặc định chỉ bao gồm packages/plugins/, dùng để lưu trữ mã nguồn của các plugin tùy chỉnh. Mỗi thư mục con là một gói npm độc lập.core/, plugins/, pro-plugins/, presets/, v.v., tương ứng với các module cốt lõi của framework, các plugin tích hợp sẵn và các giải pháp cài đặt sẵn chính thức.Trong cả hai trường hợp, packages/plugins là vị trí chính để phát triển và gỡ lỗi các plugin tùy chỉnh.
Thư mục storage/ lưu trữ dữ liệu được tạo ra trong quá trình runtime và các kết quả build. Mô tả các thư mục con phổ biến như sau:
apps/: Cấu hình và bộ nhớ đệm cho các kịch bản đa ứng dụng.logs/: Các tệp log runtime và đầu ra gỡ lỗi.uploads/: Các tệp và tài nguyên media do người dùng tải lên.plugins/: Các plugin đã đóng gói được tải lên qua giao diện người dùng (UI) hoặc nhập qua CLI.tar/: Các gói plugin nén được tạo ra sau khi thực thi yarn build <plugin> --tar.Thông thường, chúng tôi khuyến nghị thêm thư mục
storagevào.gitignorevà xử lý riêng biệt khi triển khai hoặc sao lưu.
.env, .env.test, .env.e2e: Được sử dụng lần lượt cho chạy cục bộ, kiểm thử đơn vị/tích hợp và kiểm thử end-to-end (E2E).scripts/: Chứa các script vận hành và bảo trì phổ biến (ví dụ: khởi tạo cơ sở dữ liệu, các công cụ hỗ trợ phát hành, v.v.).Các plugin có thể tồn tại ở nhiều vị trí khác nhau. Khi NocoBase khởi động, hệ thống sẽ tải chúng theo thứ tự ưu tiên sau:
packages/plugins (dùng cho phát triển và gỡ lỗi cục bộ).storage/plugins (được tải lên qua giao diện người dùng hoặc nhập qua CLI).node_modules (được cài đặt qua npm/yarn hoặc tích hợp sẵn trong framework).Khi một plugin có cùng tên tồn tại đồng thời trong thư mục mã nguồn và thư mục đã đóng gói, hệ thống sẽ ưu tiên tải phiên bản mã nguồn, giúp việc ghi đè và gỡ lỗi cục bộ trở nên thuận tiện.
Tạo một plugin bằng CLI:
Cấu trúc thư mục được tạo ra như sau:
Sau khi quá trình build hoàn tất, thư mục
dist/cùng các tệpclient.jsvàserver.jssẽ được tải khi plugin được kích hoạt.
Trong giai đoạn phát triển, bạn chỉ cần sửa đổi thư mụcsrc/. Trước khi phát hành, hãy thực thiyarn build <plugin>hoặcyarn build <plugin> --tar.