Closed22

VanJS で kintone プラグインを作る

K SAEKIK SAEKI

パッケージマネージャは bun を使う。

K SAEKIK SAEKI

設定はこれだけにしておく。

bunfig.toml
[install]
exact = true
K SAEKIK SAEKI

TypeScript は適当に vite でよく見る設定にしておく。

K SAEKIK SAEKI
tsconfig.json
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM", "DOM.Iterable"],
    "skipLibCheck": true,

    /* Bundler mode */
    "moduleResolution": "bundler",
    "allowImportingTsExtensions": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,

    /* Linting */
    "strict": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noFallthroughCasesInSwitch": true
  },
  "include": ["src"]
}
K SAEKIK SAEKI

vite, typescript, vanjs-core を入れる。

bun install -D vite typescript vanjs-core
K SAEKIK SAEKI

ルートに index.html を作る。
あとで kintone 設定の HTML にしたいな〜と思っているので divscript だけ置いておく。

index.html
<script type="module" src="src/index.ts"></script>
<div id="kintone-vanjs"></div>
K SAEKIK SAEKI

ドキュメント読んでないけど昔読んだ Zenn の記事の記憶を辿りつつコードを書く。

src/index.ts
import van from "vanjs-core";

const { div } = van.tags;
const Hello = () => div("Hello, VanJS!");
van.add(document.querySelector("#kintone-vanjs")!, Hello());

K SAEKIK SAEKI

script かくの忘れてたので、追加する。

package.json
{
  "scripts": {
    "dev": "vite"
  }
}
K SAEKIK SAEKI

次は kintone にアップロードするファイル作り。
今日は設定ページ側だけ作る。
つまり以下があればよい。

  • manifest.json
  • 設定ページの HTML と JS
K SAEKIK SAEKI

manifest.json はおきまり。
適当に取ってくる。

manifest.json
{
  "type": "APP",
  "manifest_version": 1,
  "version": "0.1.0",
  "name": {
    "en": "kintone plugin vanjs sample",
    "ja": "kintone plugin vanjs sample"
  },
  "description": {
    "en": "This is a sample plugin.",
    "ja": "This is a sample plugin."
  },
  "icon": "assets/icon.png",
  "config": {
    "html": "index.html",
    "js": [
      "index.js"
    ]
  }
}
K SAEKIK SAEKI

とりあえずさっきまでの作業で気になったこと。

  • prebuild, postbuild でシェルスクリプト呼び出してるけどこれでいいのか。
  • 設定画面だけなら vite.config.ts 一つでいいけど、どうやら rollup は chunking なしの 1 ファイルで、複数アプリのビルドをしてくれないらしいのでそこをどうするか。 vite の config を 2 つ書いてビルドを 2 回やる?
このスクラップは2024/02/18にクローズされました