Skip to content
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待
虚位以待

JavaScript & CSS 脚手架 ​

介绍 ​

虽然 Laravel 不规定你使用哪种 JavaScript 或 CSS 预处理器,但它确实提供了一个基本的起点,使用 Bootstrap、React 和 / 或 Vue,这对许多应用程序会很有帮助。默认情况下,Laravel 使用 NPM 来安装这些前端包。

Laravel 提供的 Bootstrap 和 Vue 脚手架位于 laravel/ui Composer 包中,可以使用 Composer 安装:

php
composer require laravel/ui:^1.0 --dev

安装 laravel/ui 包后,可以使用 ui Artisan 命令安装前端脚手架:

php
// 生成基本脚手架...
php artisan ui bootstrap
php artisan ui vue
php artisan ui react

// 生成登录 / 注册脚手架...
php artisan ui bootstrap --auth
php artisan ui vue --auth
php artisan ui react --auth

CSS ​

Laravel Mix 提供了一个简洁、富有表现力的 API,用于编译 SASS 或 Less,这些是普通 CSS 的扩展,增加了变量、混入和其他强大的功能,使得使用 CSS 更加愉快。在本文档中,我们将简要讨论 CSS 编译的一般情况;不过,你应该查阅完整的 Laravel Mix 文档 以获取有关编译 SASS 或 Less 的更多信息。

JavaScript ​

Laravel 不要求你使用特定的 JavaScript 框架或库来构建应用程序。事实上,你甚至不必使用 JavaScript。然而,Laravel 确实包含了一些基本的脚手架,使得使用 Vue 库编写现代 JavaScript 更加容易。Vue 提供了一个富有表现力的 API,用于使用组件构建强大的 JavaScript 应用程序。与 CSS 一样,我们可以使用 Laravel Mix 轻松地将 JavaScript 组件编译成一个单一的、浏览器就绪的 JavaScript 文件。

编写 CSS ​

安装 laravel/ui Composer 包并生成前端脚手架后,Laravel 的 package.json 文件将包含 bootstrap 包,以帮助你开始使用 Bootstrap 原型化应用程序的前端。不过,请随意根据自己的应用程序需要添加或删除 package.json 文件中的包。你不必使用 Bootstrap 框架来构建 Laravel 应用程序 - 它是为那些选择使用它的人提供的一个良好起点。

在编译 CSS 之前,使用 Node 包管理器 (NPM) 安装项目的前端依赖项:

php
npm install

使用 npm install 安装依赖项后,可以使用 Laravel Mix 将 SASS 文件编译为普通 CSS。npm run dev 命令将处理 webpack.mix.js 文件中的指令。通常,编译后的 CSS 将放置在 public/css 目录中:

php
npm run dev

Laravel 的前端脚手架中包含的 webpack.mix.js 文件将编译 resources/sass/app.scss SASS 文件。这个 app.scss 文件导入了一个 SASS 变量文件并加载了 Bootstrap,为大多数应用程序提供了一个良好的起点。请随意根据需要自定义 app.scss 文件,甚至可以通过配置 Laravel Mix 使用完全不同的预处理器。

编写 JavaScript ​

应用程序所需的所有 JavaScript 依赖项都可以在项目根目录的 package.json 文件中找到。这个文件类似于 composer.json 文件,只是它指定的是 JavaScript 依赖项而不是 PHP 依赖项。你可以使用 Node 包管理器 (NPM) 安装这些依赖项:

php
npm install

注意

默认情况下,Laravel 的 package.json 文件包含了一些包,如 lodash 和 axios,以帮助你开始构建 JavaScript 应用程序。请随意根据自己的应用程序需要添加或删除 package.json 文件中的包。

安装包后,可以使用 npm run dev 命令编译资产。Webpack 是一个现代 JavaScript 应用程序的模块打包器。当你运行 npm run dev 命令时,Webpack 将执行 webpack.mix.js 文件中的指令:

php
npm run dev

默认情况下,Laravel 的 webpack.mix.js 文件会编译你的 SASS 和 resources/js/app.js 文件。在 app.js 文件中,你可以注册 Vue 组件,或者如果你更喜欢其他框架,可以配置自己的 JavaScript 应用程序。编译后的 JavaScript 通常会放置在 public/js 目录中。

注意

app.js 文件将加载 resources/js/bootstrap.js 文件,该文件引导和配置 Vue、Axios、jQuery 以及所有其他 JavaScript 依赖项。如果你有其他 JavaScript 依赖项需要配置,可以在此文件中进行。

编写 Vue 组件 ​

使用 laravel/ui 包为前端生成脚手架时,会在 resources/js/components 目录中放置一个 ExampleComponent.vue Vue 组件。ExampleComponent.vue 文件是一个 单文件 Vue 组件 的示例,它在同一个文件中定义了 JavaScript 和 HTML 模板。单文件组件提供了一种非常方便的方法来构建 JavaScript 驱动的应用程序。示例组件在你的 app.js 文件中注册:

php
Vue.component(
    'example-component',
    require('./components/ExampleComponent.vue').default
);

要在应用程序中使用该组件,可以将其放入一个 HTML 模板中。例如,在运行 php artisan ui vue --auth Artisan 命令为应用程序的身份验证和注册屏幕生成脚手架后,可以将组件放入 home.blade.php Blade 模板中:

php
@extends('layouts.app')

@section('content')
    <example-component></example-component>
@endsection

注意

请记住,每次更改 Vue 组件时都应运行 npm run dev 命令。或者,你可以运行 npm run watch 命令来监视并在每次修改组件时自动重新编译。

如果你对编写 Vue 组件感兴趣,应该阅读 Vue 文档,它提供了对整个 Vue 框架的全面、易于阅读的概述。

使用 React ​

如果你更喜欢使用 React 构建 JavaScript 应用程序,Laravel 可以轻松地将 Vue 脚手架替换为 React 脚手架:

php
composer require laravel/ui:^1.0 --dev

php artisan ui react

// 生成登录 / 注册脚手架...
php artisan ui react --auth

添加预设 ​

预设是“可宏化的”,这允许你在运行时向 UiCommand 类添加其他方法。例如,以下代码向 UiCommand 类添加了一个 nextjs 方法。通常,你应该在服务提供者中声明预设宏:

php
use Laravel\Ui\UiCommand;

UiCommand::macro('nextjs', function (UiCommand $command) {
    // 为前端生成脚手架...
});

然后,你可以通过 ui 命令调用新的预设:

php
php artisan ui nextjs