Neewton é um gerenciador de módulos para uma aplicação Laravel com InertiaJs e VueJs.
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.
composer require rocketslab/neewtonphp artisan neewton:installSe 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>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),
...)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)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]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