独学者Fossa

独学していることなど

CodeIgniter 4 + Vite 4

mihatori/codeignitervite

github.com

先日、CodeIgniter 4.3.0がリリースされたのですが、Viteに対応しているのか、気になったので、調べてみました。

mihatori/codeigniterviteを見つけたのですが、私には、使いこなせませんでした。

.env内のVITE_AUTO_INJECTINGは、truefalseの両方で、試してみました。

ルートにあるvite.config.jsだと動きますが、modulesフォルダ内で使うことは、想定されていないような気がしました。

私が理解していないだけで、たぶん、やり方次第では、modulesフォルダ内でも使えるのかもしれません。


manifest.jsonの位置が、FCPATH . 'manifest.json'と書いてあって、publicフォルダ内に、必ずあることが前提になっています。

publicフォルダを指定してあると、消せないファイルがいくつか存在しているので、面倒です。

Laravelの場合は、public/buildpublic/build-<任意>のようにしているはずです。

私の場合、モジュール内でnpm run buildすると、public/build/モジュール名に生成されます。

view_cell

CodeIgniter 4には、view_cellがあるので、試してみました。

App\Cells\Vite::script
  1. 指定した場所で生成されたmanifect.jsonを読みこむ
  2. file欄の文字を取り出す
  3. Helperscript_tagで、scriptタグを生成する

この方法で良いのかどうか、今の時点では、わからないので、ソースコードは掲載しません。

Modules/Admin/Views/index.php

Laravelフレームワーク内の@viteディレクティブぽい感じにしました。

下記の一行を<head>タグ内に入れます。

<?= view_cell('Vite::script', ['Resources/js/main.js', 'build/admin']); ?>
Modules/Admin/vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

export default defineConfig({
  build: {
    outDir: '../../public/build/admin',
    emptyOutDir: true,
    manifest: true,
    rollupOptions: {
      input: './Resources/js/main.js',
    },
  },
  plugins: [
    vue(),
  ],
});

trianayulianto/vite-codeigniter-4

github.com

もう一つ見つけたのですが、どうやらCodeIgniter 4で、Laravel Viteを活用する方法なのかな?

試す気になれなかったので、試していないです。

感想

CodeIgniterは、v2を使っていた時が、一番楽しかったです。

v3で、MITライセンスになったけど、離れていった人が多いように感じました。

サイズや実行速度も大切ですが、更新の頻度やエコシステムの構築なども大切なのでは?と思います。