Skip to content

Instantly share code, notes, and snippets.

@owenconti
Created February 21, 2021 19:32
Show Gist options
  • Save owenconti/3c40456e18bdffed7a0960dcdb00f8b4 to your computer and use it in GitHub Desktop.
Save owenconti/3c40456e18bdffed7a0960dcdb00f8b4 to your computer and use it in GitHub Desktop.
Replacing Laravel Mix with Vite
import { createVuePlugin as Vue2Plugin } from 'vite-plugin-vue2';
const { resolve } = require('path');
const Dotenv = require('dotenv');
Dotenv.config();
const ASSET_URL = process.env.ASSET_URL || '';
export default {
plugins: [
Vue2Plugin(),
],
root: 'resources',
base: `${ASSET_URL}/dist/`,
build: {
outDir: resolve(__dirname, 'public/dist'),
emptyOutDir: true,
manifest: true,
target: 'es2018',
rollupOptions: {
input: '/js/app.js'
}
},
server: {
strictPort: true,
port: 3000
},
resolve: {
alias: {
'@': '/js',
}
},
optimizeDeps: {
include: [
'vue',
'portal-vue',
'@inertiajs/inertia',
'@inertiajs/inertia-vue',
'@inertiajs/progress',
'axios'
]
}
}
import vue from '@vitejs/plugin-vue';
const { resolve } = require('path');
const Dotenv = require('dotenv');
Dotenv.config();
const ASSET_URL = process.env.ASSET_URL || '';
export default {
plugins: [
vue(),
],
root: 'resources',
base: `${ASSET_URL}/dist/`,
build: {
outDir: resolve(__dirname, 'public/dist'),
emptyOutDir: true,
manifest: true,
target: 'es2018',
rollupOptions: {
input: '/js/app.js'
}
},
server: {
strictPort: true,
port: 3000
},
resolve: {
alias: {
'@': '/js',
}
},
optimizeDeps: {
include: [
'vue',
'@inertiajs/inertia',
'@inertiajs/inertia-vue',
'@inertiajs/progress',
'axios'
]
}
}
npm uninstall laravel-mix
rm webpack.mix.js
composer require ohseesoftware/laravel-vite-manifest
// Running locally
APP_ENV=local
ASSET_URL=http://localhost:3000
// Running production build
APP_ENV=production
ASSET_URL=https://your-asset-domain.com
"scripts": {
"start": "vite",
"production": "vite build"
},
// postcss.config.js
module.exports = {
plugins: [
require('postcss-import'),
require('tailwindcss'),
require('autoprefixer'),
]
}
npm install --save-dev vite @vitejs/plugin-vue dotenv @vue/compiler-sfc
// app.blade.php
<head>
// ... rest of head contents here
@vite
</head>
@MotionPhix
Copy link

How about frontend imports? How do we transform those? I mean something like:

<link rel="stylesheet" type="text/css" href="{{ mix('css/mail.css') }}">

How does that change with vite?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment