m2s/laravel-nuxt

NuxtJS framework integration for Laravel


README

This package facilitates integrating an SPA built with NuxtJS into an existing Laravel project.

Installation

composer require m2s/laravel-nuxt

After installation you can publish the config.

php artisan vendor:publish --provider="M2S\LaravelNuxt\LaravelNuxtServiceProvider"

Setup

The package provides a command for easy installation and integration of a nuxt project.

$ php artisan nuxt:install -h
Description:
  Create a new nuxt project or setup integration of an existing one

Usage:
  nuxt:install [options] [--] [<source>]

Arguments:
  source                 Root folder of the nuxt application [default: "resources/nuxt"]

Options:
  -y, --yarn             Use yarn package manager
  -t, --typescript       Use typescript runtime
  -c, --cache[=CACHE]    Optional caching endpoint (e.g. /api/cache)
  -p, --prefix[=PREFIX]  Prefix for the nuxt application (will use value from `config('nuxt.prefix')` if omitted)
      --no-export        Do not export env variable on build
  -h, --help             Display this help message
  -q, --quiet            Do not output any message
  -V, --version          Display this application version
      --ansi             Force ANSI output
      --no-ansi          Disable ANSI output
  -n, --no-interaction   Do not ask any interactive question
      --env[=ENV]        The environment the command should run under
  -v|vv|vvv, --verbose   Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Automatic routing

By default the package automatically adds a route for nuxt pages.

Nuxt::route('/{path?}')->where('path', '.*')->name('nuxt');

This route is named 'nuxt' and can be used with Laravels route helper.

route('nuxt');

// or

route('nuxt', ['path' => 'some/deep/path']);

You can disable/enable automatic routing with the 'routing' setting in config/nuxt.php.

Manual Routing

The package provides a simple facade which might be used to register nuxt routes.
Routes will automatically be prefixed with the configured path and a controller will be attached which handles internal redirection to nuxt.
The method returns a Illuminate\Routing\Route instance and may be used as normal.

In routes/web.php:

use M2S\LaravelNuxt\Facades\Nuxt;

Nuxt::route('example/route')->name('nuxt.example');