在 Ubuntu 中,Laravel 实现热更新可以通过 Laravel Mix 的 watch 命令来完成。Laravel Mix 是一个基于 Webpack 的构建工具,它可以帮助你编译前端资源文件,如 JavaScript 和 CSS。
以下是在 Ubuntu 中设置 Laravel 热更新的步骤:
安装 Node.js 和 NPM
在终端中运行以下命令来安装 Node.js 和 NPM:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
安装 Laravel Mix
在 Laravel 项目的根目录下,运行以下命令来安装 Laravel Mix 和相关依赖:
npm install
配置 Laravel Mix
打开项目根目录下的 webpack.mix.js 文件,确保已经配置了前端资源文件的编译选项。例如:
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
运行热更新
在终端中,进入到 Laravel 项目的根目录,运行以下命令来启动热更新:
npm run watch
这将启动一个监听文件变化的进程。当你修改前端资源文件(如 JavaScript 或 CSS)时,Laravel Mix 会自动重新编译这些文件,并在浏览器中实时更新。
配置 Laravel 以支持热更新
要让 Laravel 支持热更新,需要在 app/Providers/AppServiceProvider.php 文件中的 boot 方法里添加以下代码:
if (mix()->isLocal()) {
$env = Mix::ENV();
$app['url'] = env('APP_URL');
$app->singleton('Illuminate\Contracts\Debug\ExceptionHandler', function ($app) use ($env) {
return new \Illuminate\Foundation\Exceptions\Handler($env);
});
$app->singleton('Illuminate\View\Engines\PhpEngine', function ($app, $config) {
$view = new \Illuminate\View\Engines\PhpEngine($app['view'], $config);
if (file_exists(resolve($config['paths']['resources'].'/views'))) {
$view->addLocation(resolve($config['paths']['resources'].'/views'));
}
return $view;
});
}
现在,当你在开发环境中修改前端资源文件时,Laravel 应用将自动实现热更新。