DEV Community 👩‍💻👨‍💻

Paulo Castellano
Paulo Castellano

Posted on

How to make Vite, Valet, and SSL works together

Hey 👋

I decided to create a new project today, then I created a new laravel project and it's coming with a new assets compiler, vite.

But my project requires SSL in local development, then I needed to make the vite works together with SSL and laravel valet.

I did not find much content on the internet about it, because it's a very new release, then I decided to share the solution with you.

Let's go, first assure your domain already have SSL with the command:

cd ~/Code/your-current-project
valet secure your-current-project
Enter fullscreen mode Exit fullscreen mode

Now check in the browser your domain it's working with the certificate.

Solution

The magic is you pass the key and cert to vite.config.js as you make in Nginx or Apache.

Check the file example bellow 👇

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';

 const domain = "domain.test"; // add it
 const homedir = require("os").homedir(); // add it

export default defineConfig({
    plugins: [
        laravel({
            input: "resources/js/app.js",
            ssr: "resources/js/ssr.js",
        }),
        vue({
            template: {
                transformAssetUrls: {
                    base: null,
                    includeAbsolute: false,
                },
            },
        }),
    ],
    // add this block
    server: {
        https: {
            key: homedir + "/.config/valet/Certificates/" + domain + ".key",
            cert: homedir + "/.config/valet/Certificates/" + domain + ".crt",
        },
        host: domain,
        hmr: {
            host: domain,
        },
    },
});
Enter fullscreen mode Exit fullscreen mode

I hope this article helped you!

Top comments (0)

👋 Welcome new DEV members in our Welcome Thread

Say hello to the newest members of DEV.