andy3471 / keyshare

A web app for sharing Steam keys with your friends
MIT License
4 stars 2 forks source link

Migrate from Laravel Mix to Vite #126

Closed andy3471 closed 6 months ago

andy3471 commented 6 months ago

This pull request includes changes for migrating from Laravel Mix to Vite outlined in Migration Guide and automated by the Vite Converter.

Before merging, you need to:

Please send your feedback to shift@laravelshift.com or share the good vibes on Twitter.

andy3471 commented 6 months ago

:x: Shift did not remove some of the previous npm scripts running mix commands as they appeared to be customized. You should review the scripts configured in your package.json file and update any custom commands to use vite.

andy3471 commented 6 months ago

:information_source: Previously, Laravel configured several npm scripts for building assets. For Vite, Laravel configures a dev script for generating and watching your assets (for development) and build script for generating your assets (for production).

Shift automated this change by replacing commands using these scripts with their new Vite script. However, you may still be referencing these scripts in your code or in deployment scripts.

andy3471 commented 6 months ago

:warning: Shift detected you are using Vue. As such, Vite recommends importing your CSS from your JavaScript entry point. This will improve your development experience by avoiding flashes of unstyled content during hot reloading.

Shift removed your CSS entry point from your Vite configuration. However, you will need to import this CSS in your JavaScript entry point.

andy3471 commented 6 months ago

:informationsource: Laravel renamed the environment variables used by Mix to use a `VITEprefix, instead ofMIX_`. While Shift automated this change throughout your code, you should check for any additional references which may not be included in your Git repository.

andy3471 commented 6 months ago

:information_source: Vite requires JavaScript files containing JSX to have a .jsx file extension. Shift did not detect any JSX in files with a .js extension under the resources folder. However, if you are using JSX, be sure the files have a .jsx extension.

andy3471 commented 6 months ago

:warning: Vite generates frontend assets to the public/build folder. This folder is not tracked by Git within a default Laravel project. As such, Shift added this folder to your .gitignore file.

If you wish to track the generated frontend assets within your project, such as for ease of deployment, you may undo this commit by running: git revert 214b679d

andy3471 commented 6 months ago

:warning: Shift detected you may be using the tilde (~) prefix to import CSS or JavaScript. You may try to add an alias for the ~ to your Vite configuration. Alternatively, you may update these imports to use an absolute reference or @ alias.

andy3471 commented 6 months ago

:information_source: The new @vite Blade directive outputs <script> tags with the type="module" attribute. This attribute implicitly defers the script. This is a difference from Laravel Mix which may change the execution order of the JavaScript on your page.

If you experience JavaScript errors relating to undefined references, you may need to reorder your scripts or add the defer attribute to any inline <script> blocks on your page.

andy3471 commented 6 months ago

:alembic: This Shift is still being refined. Please report any issues or suggestions to shift@laravelshift.com. Your feedback is what helps improve the experience for everyone.