打包资产 (Vite)
介绍
Vite 是一个现代的前端构建工具,它提供一个非常快速的开发环境,并将您的代码打包用于生产。使用 Laravel 构建应用程序时,您通常会使用 Vite 将应用程序的 CSS 和 JavaScript 文件绑定到生产环境就绪的资产中。
Laravel 通过提供官方插件和 Blade 指令来加载您的开发和生产资产。从而与 Vite 无缝衔接。
技巧:您是否运行 Laravel Mix? 在新的 Laravel 安装中,Vite 已经取代 Laravel Mix。如需 Mix 文档,请访问 Laravel Mix 站点。如果您想切换到 Vite,请查看我们 迁移指引.
在 Vite 和 Laravel Mix 之间选择
在过渡到 Vite 之前,当打包资产时,新的 Laravel 应用使用 Mix,它由 webpack 来支持。在构建富 JavaScript 应用时,Vite 致力于提供一个更快和更高效的体验。如果您开发一个单网页应用 (SPA),包括使用以下工具开发,如 Inertia,Vite 将会更加适合。
Vite 也适用于带有 JavaScript "sprinkles" 的传统服务端渲染应用程序,包括使用 Livewire 。然而,它缺少 Laravel Mix 支持的一些特性,例如将任意资源复制到构建中的能力,而这些资源没有在 JavaScript 应用程序中直接引用。
迁移回 Mix
您是否使用我们的 Vite 脚手架开始新的 Laravel 应用程序,但需要回到 Laravel Mix 和 webpack ?没问题。请查阅 从 Vite 迁移到 Mix 官方指南。
安装 & 设置
技巧:以下文档讨论了如何动手安装和配置 Laravel Vite 插件。然而,Larvel 的 入门套件 已经包含了所有这些脚手架,这是开始使用 Laravel 和 Vite 的最快方式。
安装 Node
在运行 Vite 和 Laravel 插件之前,您必须确保已安装 Node.js 和 NPM
node -v
npm -v
你可以使用来自 Node 官方 的简单图形安装程序轻松安装最新的 Node 和 NPM。或者,如果你使用Laravel Sail,你可以通过 Sail 调用 Node 和 NPM:
./vendor/bin/sail node -v
./vendor/bin/sail npm -v
安装 Vite 和 Laravel Plugin
在 Laravel 的全新安装中,您会在应用程序目录结构的根目录中找到一个 package.json
文件。 默认的 package.json
文件已经包含了你开始使用 Vite 和 Laravel 插件所需的一切。 您可以通过 NPM 安装应用程序的前端依赖项:
npm install
配置 Vite
Vite是通过项目根目录的 vite.config.js
文件配置的。您可以根据自己的需求自由自定义此文件,还可以安装应用程序所需的任何其他插件,例如 @vitejs/plugin-vue
或 @vitejs/plugin-react
。
Laravel Vite插件要求您指定应用程序的入口点。这些可能是 JavaScript 或 CSS 文件,和其他预处理语言,例如 Typescript,JSX,TSX 和 SASS。
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [
laravel([
'resources/css/app.css',
'resources/js/app.js',
]),
],
});
如果您正在构建 SPA,包括使用 Inertia 构建的应用程序,则 Vite 在没有 CSS 入口点的情况下运行最佳:
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [
laravel([
// 'resources/css/app.css',
'resources/js/app.js',
]),
],
});
作为替代,您应该通过 JavaScript 导入 CSS。通常,这将在您的应用程序的 resources/js/app.js
文件中完成:
import './bootstrap';
import '../css/app.css'; // 新增
Laravel 插件还支持多个入口点和高级配置选项,例如 SSR 入口点。
通过一个安全的开发服务器工作
如果您的开发 Web 服务器在 HTTPS 上运行,包括 Valet 的 secure command,您可能会遇到连接到Vite开发服务器的问题。您可以通过将以下内容添加到 vite.config.js
配置文件:
export default defineConfig({
// ...
server: {
https: true,
host: 'localhost',
},
});
当您运行 npm run dev
命令时,你还需要通过控制台中的「Local」链接来接受浏览器中 Vite 开发服务器的证书警告。