
開發 kintone 外掛,目的就是要讓這個功能能夠被重複利用,能夠跨應用程式、甚至到其他人的 kintone 環境,只要他有這個外掛主檔案。
開發完成的外掛最終會打包成一個 .zip 的檔案,只要匯入到 kintone 環境中,並且在應用程式中新增外掛,就可以使用。在打包成外掛的時候,會需要用到官方的 @kintone/plugin-packer 進行打包,上傳外掛可以用 @kintone/plugin-uploader 或是手動上傳。
要打包 kintone 外掛,首先資料夾會需要有被打包的 html/css/js 檔案,例如以下:
📂 plugin
 ┣ 📂 css/
 ┃  ┣ 📜 config.css
 ┃  ┗ 📜 customize.css
 ┃
 ┣ 📂 html/
 ┃  ┗ 📜 config.html
 ┃
 ┣ 📂 image/
 ┃  ┗ 📜 icon.png
 ┃
 ┣ 📂 js/
 ┃  ┣ 📜 config.js
 ┃  ┗ 📜 customize.js
 ┃
 ┗ 📜 manifest.json
不需要刻意照上面的資料夾架構,因為在 manifest.json 可以自己指定檔案路徑:
{
  "manifest_version": 1,
  "version": "1.0.0",
  "type": "APP",
  "name": {
    "ja": "plugin name",
    "en": "plugin name",
    "zh": "plugin name",
    "es": "plugin name"
  },
  "description": {
    "en": "plugin description",
    "ja": "plugin description",
    "zh": "plugin description",
    "es": "plugin description "
  },
  "icon": "logo.png",
  "homepage_url": {
    "ja": "https://example.com/ja/",
    "en": "https://example.com/en/",
    "zh": "https://example.com/zh/",
    "es": "https://example.com/es/"
  },
  "desktop": {
    "js": ["js/customize.js"],
    "css": []
  },
  "mobile": {
    "js": ["js/customize.js"],
    "css": []
  },
  "config": {
    "html": "index.html",
    "js": ["js/config.js"],
    "css": []
  }
}
有了架構後,就可以用 @kintone/plugin-packer 打包:
kintone-plugin-packer
可以帶幾個參數:
--ppk:指令打包後的 ppk 檔。--out:輸出的外掛檔名。--watch:監聽模式。如果沒有帶 --ppk 的話,就會自動生成一個 .ppk 的檔案,這個檔案是後續重新打包外掛的時候用的,生成後可以改成指定的名字比較方便管理。
如果覺得要打指令麻煩,也可以選擇在網站上打包專案,只要將專案拉到網頁上即可:

其實到上面這個步驟就已經完成了,如果想要更懶一點直接透過指令上傳外掛的話,則可以用 @kintone/plugin-uploader,基本上與客製化 uplodader 的使用方式一樣:
kintone-plugin-uploader \
--base-url ${yourKintoneBaseUrl} \
--username ${yourLoginName} \
--password ${yourPassword} \
--watch \
開發外掛的簡易流程就如以上,其實只要 manifest.json 的路徑有對到就好,所以可以搭配前端框架等,在編譯完檔案後指定到自己想要的路徑,再將編譯檔案打包成外掛即可,也可以在開發階段的時候,上傳 https 本地網址,以方便開發。
略 ...
  "desktop": {
    "js": ["https://localhost:5100/js/customize.js"],
    "css": []
  },
  "mobile": {
    "js": ["https://localhost:5100/js/customize.js"],
    "css": []
  },
略 ...