PHPackages                             rocketslab/neewton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rocketslab/neewton

ActiveProject[Utility &amp; Helpers](/categories/utility)

rocketslab/neewton
==================

The InertiaJs Module Manager.

0.3.2(4y ago)110MITPHPPHP ^8.0

Since Nov 27Pushed 4y ago1 watchersCompare

[ Source](https://github.com/RocketsLab/neewton)[ Packagist](https://packagist.org/packages/rocketslab/neewton)[ RSS](/packages/rocketslab-neewton/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (6)Used By (0)

Neewton
=======

[](#neewton)

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

### Propósito

[](#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
----------

[](#instalação)

```
composer require rocketslab/neewton
```

### Copiando os assets para a aplicação Laravel

[](#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=
```

---

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

[](#configurando-para-que-a-aplicação-reconheça-os-módulos)

### Lado Cliente

[](#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
-----------

[](#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() //
        @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
