2015-06-17 12 views
5

Tôi muốn học viết các plugin cho gitbook (vì tôi muốn sử dụng nó và sẽ cần các plugin tùy chỉnh).Tạo một plugin gitbook cục bộ mà không cần xuất bản nó

Tuy nhiên, tôi cảm thấy tài liệu là một chút thưa thớt về vấn đề này, và đọc mã từ plugin hiện không giúp tôi rất nhiều trong câu hỏi này:

Làm thế nào tôi có thể kiểm tra một plugin trước khi xuất bản nó. documentation cung cấp một số gợi ý về cách plugin phải xem xét và sau đó nó cho tôi biết để xuất bản nó.

Tất nhiên tôi không muốn làm điều đó, tôi muốn phát triển và thử nghiệm cục bộ trước khi xuất bản. Nhưng tôi không thấy làm thế nào có thể được thực hiện.

tôi cố gắng bắt chước một plugin được cài đặt bên trong /usr/lib/node_modules/gitbook-cli/node_modules/ để tạo plugin mới của tôi, nhưng khi tôi cố gắng sử dụng plugin trong một cuốn sách tôi nhận được thông báo lỗi nói với tôi để cài đặt plugin thông qua npm.

Có cách nào để sử dụng plugin (để thử nghiệm hoặc có thể nói chung) mà không xuất bản lần đầu trên npm?

Trả lời

1

Đây không phải là câu trả lời cuối cùng (vì vậy tôi sẽ không "chấp nhận"), nhưng tôi đã tìm thấy cách giải quyết khác, trong đó có thể được chấp nhận, tùy thuộc vào hoàn cảnh.

gì có thể là:

  • Viết (sơ bộ) Plugin
  • xuất bản để NPM
  • Thêm plugin vào một cuốn sách book.json
  • chạy gitbook install trong thư mục của cuốn sách

Điều này sẽ tải xuống và cài đặt plugin bên trong cuốn sáchcủa sách 10 thư mục. Việc sửa đổi các tệp JavaScript sẽ có hiệu lực đối với các bản dựng gitbook tiếp theo. Vì vậy, bạn có thể tiếp tục phát triển plugin của bạn tại địa phương.

Điều cần biết là cách (nếu) plugin được sửa đổi có thể được xuất bản, khi đã sẵn sàng.

Và nó có thể được coi là một nhược điểm (nhiều hơn hoặc ít nghiêm trọng hơn) mà bây giờ bạn có một plugin hoàn toàn không thể xuất bản được xuất bản trên npm.

5

Bạn có thể bỏ qua việc xuất bản ban đầu lên NPM bằng cách liên kết thư mục plugin của bạn với thư mục node_modules. Giả sử một cấu trúc thư mục:

projects/ 
    my-book/ 
    node_modules/ 
    other_files... 
    awesome-plugin/ 
    plugin_files... 

sau đó bạn có thể làm

cd projects/my-book/node_modules 
ln -s ../../awesome-plugin 

Bạn có thể phải thêm các plugin để book.json để có được nó để đăng ký, nhưng thử nó mà không cần đầu tiên. Ngoài ra tôi giả sử một môi trường * NIX; bạn có thể phải tra cứu các lệnh cho Windows, nhưng khái niệm là như nhau.


riêng từ câu trả lời trên của tôi, bạn có thể sử dụng NPM của namespaced packages xuất bản plugin của bạn đến một không gian tên riêng (ví dụ, @uli_1973/awesome-plugin). Sau đó, khi bạn đã sẵn sàng cho thời gian quan trọng, bạn có thể xác nhận tên không có tên cho plugin của mình (awesome-plugin).

+0

Cảm ơn bạn. Tôi sẽ tìm kiếm một cơ hội để kiểm tra trước khi chấp nhận câu trả lời, nhưng có vẻ đầy hứa hẹn. –

2

Plugin gitbook chỉ là một mô-đun NPM. Bạn có thể sử dụng cách phát triển mô-đun npm cục bộ trong việc phát triển plugin gitbook.

Npm cung cấp lệnh link để xử lý tình huống này.

Thứ nhất, trong thư mục gitbook plugin của bạn, chạy dưới lệnh để tạo ra toàn cầu cài đặt liên kết tượng trưng đến plugin của bạn:

npm link 

Tiếp theo trong thư mục gitbook của bạn, chạy dưới lệnh để liên kết các liên kết tượng trưng global gitbook-plugin-name dưới của bạn gitbook's node_modules thư mục:

npm link gitbook-plugin-name 

Định cấu hình plugin của bạn trong book.json. Bây giờ bạn có thể kiểm tra các plugin trong gitbook của bạn mà không cần xuất bản.

Các vấn đề liên quan