Gerenciador de módulos para Laravel/InertiaJs + Vuejs

Related tags

Laravel neewton
Overview

Neewton

Neewton é um gerenciador de módulos para uma aplicação Laravel com InertiaJs e VueJs.

Propósito

Este projeto tem o objetivo de deixar uma aplicação Laravel com InertiaJs com a capacidade de modularizar seus domínios. Um módulo de permissões, estoque, clientes, produtos e etc...

Todo módulo deve conter os componentes necessários para gerenciar o estado dos dados nele contido. Também podemos configurar módulos que dependam de outros e assim garantir que um módulo possa ter acesso aos dados de outro por esta configuração.

Instalação

composer require rocketslab/neewton

Copiando os assets para a aplicação Laravel

php artisan neewton:install

Se não tiver o composer configurado no sistema pode indicar o caminho para ele no comando de instalação:

php artisan neewton:install --composer=<caminho para o composer>

Configurando para que a aplicação reconheça os módulos

Lado Cliente

Faça a seguinte alteração no seu arquivo app.js para que os módulos sejam resolvidos no InertiaJs.

Antes:

createInertiaApp(...
    
    resolve: import(`./Pages/${name}.vue`).then(module => module.default)
    
...)

Depois:

import neewton from './neewton';

createInertiaApp(...
    
    resolve: name => neewton(name),
    
...)

Laravel Mix

Verifique se seu webpack.mix.js chama o método vue(). Isso é necessário para que o LaravelMix/Webpack encontre e compile os arquivos .vue da aplicação e dos módulos.

webpack.mix.js

mix.js('resources/js/app.js', 'public/js')
    .vue() // <<<<< == adicione esta linha
    ... // demais plugins/funções (se houver)

Lado Servidor

O Neewton registra uma tag blade @neewtonModules para que os módulos sejam localizados e configurados.

Adicione a tag blade no arquivo app.blade.php ou no seu próprio arquivo de layout logo abaixo de <script src="{{ mix('js/app.js') }}" defer></script>

app.blade.php

...
        <!--  Active neewton modules -->
        @neewtonModules
...

Isso requer que seja feito uma limpeza no cache das views na primeira instalação e toda vez que houver mudança de algum módulo, seja adicionando ou removendo e tambem a recompilação dos assets do projeto/modúlos.

php artisan view:clear && npm run [dev|prod]

Configuração

Para adicionar ou remover módulos publique o arquivo de configuração do Neewton

php artisan vendor:publish --provider="RocketsLab\Neewton\NeewtonServiceProvider"

Para adicionar um módulo basta adicionar a classe que configura o módulo no array active_modules no config/neewton.php

Ex:

<?php

return [
    /*
     * Active modules array, put here each module registration class
     */
    'active_modules' => [
        Module\\Exemplo\\Register::class
    ]
];

A documentação para criação de módulos vai estar disponível aqui:

Como criar seu módulos para o Neewton


®2021 Jorge @jjsquady Junior

RocketsLab

You might also like...
Projeto em Laravel para práticar redis, cache e vue js

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

API para Autenticación desarrollada con Laravel 8 y Sanctum

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Software para consultas veiculares construído com PHP, Laravel e MySQL
Software para consultas veiculares construído com PHP, Laravel e MySQL

DespCar Um projeto de uso pessoal para um despachante veícular para consulta de carros através da placa Sobre o Projeto Construído Com PHP PHPUnit Lar

Projeto feito em Laravel/Framework com o intuito de aprender usar as Queues para disparo de e-mails.

Filas do Laravel Projeto feito em Laravel/Framework com o intuito de aprender usar as Queues para disparo de e-mails. Bibliotecas usadas: Laravel pt-B

Un sitio web de películas realizado con Laravel y TailwindCSS para la Beca Neoris en Programación Full-Stack dictada por la Universidad Tecnológica Nacional.

Teatralidad Un sitio web realizado con Laravel y TailwindCSS para la Beca Neoris en Programación Full-Stack dictada por la Universidad Tecnológica Nac

Proyecto Laravel Diciembre 2021 para la asignatura de: Desarrollo Aplicaciones Web Servidor

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Libreria PHP para generar direcciones de criptomonedas.

Criptomonedas soportadas Soporte para 3 tipos de direcciones: legacy, compatibility y segwit. Bitcoin Dash Dogecoin Litecoin Viacoin Zcash Requerimien

pagina de control de inversiones para practicar

inversion pagina de control de inversiones para practicar. Esta pagina esta hecho con codeigniter utilizando bootstrap. Esta mas que nada hecha en php

API para Consulta de CPF, Gerador e Validador de CPF feito em PHP

Ferramentas para CPF em PHP Você poderá desenvolver paineis de consulta, geradores, bots e o que mais a sua mente imaginar. Instalação e atualização D

Owner
RocketsLab
RocketsLab
Scripts em PHP para um processo seletivo, onde trabalho com lógica básica para testar minhas competências na linguagem referida.

Processo-Seletivo-PHP-Junior Scripts em PHP para um processo seletivo, onde trabalho com lógica básica para testar minhas competências na linguagem re

Gabriel Silva Araujo 2 Dec 10, 2021
Laravel application project as Sheina Online Store backend to be built with Laravel and VueJS

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Boas Aditya Christian 1 Jan 11, 2022
AliExpress Clone app built with Laravel 8 And vuejs

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Laravue 9 Dec 21, 2022
Web application with Laravel in Backend and VueJS in Frontend

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Benjdia Saad 1 Oct 12, 2021
Laravel + Vuejs Nested Comment App

Laravel + Vuejs Nested Comment App

null 1 Feb 2, 2022
This package was created to deal with laravel datatables and cruds using vuejs.

datatable-cruds Installation This package was created to deal with laravel datatables and cruds using vuejs. Install the package through Composer. Run

Osama Saad 9 Dec 19, 2022
Data Table package with server-side processing, unlimited exporting and VueJS components

Data Table package with server-side processing, unlimited exporting and VueJS components. Quickly build any complex table based on a JSON template.

Laravel Enso 618 Dec 28, 2022
Laravel mercado pago es un paquete que te ayuda a implementar el sdk de mercado pago para php en laravel

Introducción Laravel mercado pago es un paquete que te ayuda a implementar el sdk de mercado pago para php en laravel. ?? Instalación Para instalar ut

null 7 Sep 23, 2022
CRUD COM LARAVEL 8, MVC, LOGIN E ROTAS, PRONTO PARA VOCE USAR NOS SEUS PROJETOS

CRUD COM LARAVEL 8, MVC, LOGIN E ROTAS, PRONTO PARA VOCE USAR NOS SEUS PROJETOS. Para rodar o Crud é preciso instalar o composer e um servidor localho

Isaias Oliveira 2 Nov 16, 2021
CRUD utilizando laravel, sendo um site para criação de eventos e festivais.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Bruno 2 Oct 20, 2021