Upgrade to Pro — share decks privately, control downloads, hide ads and more …

まだWebpackで消耗してるの?

mimu
March 27, 2022
60

 まだWebpackで消耗してるの?

社内LTの発表資料

mimu

March 27, 2022
Tweet

Transcript

  1. Laravel Vite https://laravel-vite.dev/ webpack でいう Laravel mix 的なやつ vite 本体を抽象化して扱いやすくしたもの

    新規の Laravel プロジェクトならコマンド一発でセットアップ完了するよ npx @preset/cli apply laravel:vite
  2. 蛇足(愚痴) vue2⇨3 の migration がまあまあ辛い(これで丸 3 日費やしたなんて言えない) vue-property-decorator が vue3

    対応しておらずデコレータを認識できずにエラーに vue2 のままでも vite が使えるようになるライブラリ(vite-plugin-vue2)を入れて何と か頓挫せずに済んだ
  3. import { defineConfig } from 'vite' import laravel from 'vite-plugin-laravel'

    import eslint from 'vite-plugin-eslint' import { createVuePlugin as vue } from 'vite-plugin-vue2' import path from 'path' import glob from 'glob' export default defineConfig(({ command }) => ({ base: '', build: { root: '/', base: '/', manifest: true, outDir: path.resolve(__dirname, 'public/assets'), rollupOptions: { input: glob.sync('resources/js/**/*.ts').map(function (file) { return file }), output: { chunkFileNames: '[name].chunk.js?id=[hash]', }, }, }, plugins: [vue(), laravel(), eslint()], resolve: { alias: [ { find: '@js', replacement: path.resolve(__dirname, 'resources/js'), }, { find: '@img', replacement: path.resolve(__dirname, 'resources/img'), }, { find: '@sass', replacement: path.resolve(__dirname, 'resources/sass'), }, { find: '@node_modules', replacement: path.resolve(__dirname, 'resources/node_modules'), }, { find: /^~(.*)$/, replacement: '$1', }, ], // デフォルトでは.vue が入っていない extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', 'vue'], }, optimizeDeps: { include: ['vue'], }, }))