web-architect-cli 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +122 -64
- package/bin/index.js +8 -0
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -1,26 +1,30 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
# 🏗️ Web Architect CLI
|
|
2
4
|
|
|
3
|
-
O **Web Architect CLI** é uma ferramenta de linha de comando
|
|
5
|
+
O **Web Architect CLI** é uma ferramenta de linha de comando desenvolvida para padronizar e acelerar a criação de projetos no ecossistema **Sankhya**.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
Com um único comando, você pode gerar:
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
1. 🖥️ **Interfaces Web:** HTML5/JSP com TailwindCSS e compactação automática (zip).
|
|
10
|
+
2. 🗄️ **Personalizações de Banco:** Estrutura organizada para PL/SQL (Procedures, Triggers, Views).
|
|
11
|
+
3. ☕ **Extensões Java:** Projetos configurados nativamente para IntelliJ (JDK 1.8 + libs-java).
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
---
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
## 📦 Instalação
|
|
16
|
+
|
|
17
|
+
Para utilizar a ferramenta em qualquer lugar do seu sistema, instale globalmente via npm:
|
|
18
|
+
|
|
19
|
+
```bashnpm install -g web-architect-cli@latest
|
|
12
20
|
npm install -g web-architect-cli@latest
|
|
13
21
|
```
|
|
14
22
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
---
|
|
23
|
+
**Requisito:** É necessário ter o [Node.js](https://nodejs.org/) instalado.
|
|
18
24
|
|
|
19
25
|
## 🚀 Como Utilizar
|
|
20
26
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Abra o terminal na pasta onde deseja iniciar o trabalho e execute:
|
|
27
|
+
Abra o terminal na pasta onde deseja criar o projeto e execute:
|
|
24
28
|
|
|
25
29
|
Bash
|
|
26
30
|
|
|
@@ -28,50 +32,130 @@ Bash
|
|
|
28
32
|
web-arch
|
|
29
33
|
```
|
|
30
34
|
|
|
31
|
-
O assistente interativo
|
|
35
|
+
O assistente interativo apresentará um menu. Escolha o tipo de projeto:
|
|
32
36
|
|
|
33
|
-
|
|
37
|
+
### Opção [1] HTML5 (Web & Dashboards)
|
|
34
38
|
|
|
35
|
-
|
|
39
|
+
Ideal para telas adicionais, dashboards e interfaces visuais.
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
- **O que faz:** Cria estrutura MVC, configura TailwindCSS e gera script de build.
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+
- **Diferencial:** Possui o modo **"Watch"** (explicação abaixo).
|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
### Opção [2] PERSONALIZACAO (Banco de Dados)
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
Ideal para organizar scripts de banco e documentação técnica.
|
|
48
|
+
|
|
49
|
+
- **O que faz:** Cria pastas padronizadas (`src/Procedure`, `src/Trigger`, etc.) e inicializa o Git.
|
|
50
|
+
|
|
51
|
+
- **Estrutura:** Separa o código-fonte (`src`) da documentação funcional (`doc`).
|
|
52
|
+
|
|
53
|
+
### Opção [3] JAVA (IntelliJ Native)
|
|
54
|
+
|
|
55
|
+
Ideal para eventos, botões de ação e agendadores Java.
|
|
56
|
+
|
|
57
|
+
- **O que faz:** Gera a estrutura de pastas Java (`br.com.sankhya...`) e os arquivos de configuração do **IntelliJ IDEA**.
|
|
58
|
+
|
|
59
|
+
- **Configuração:** Já define o projeto para **JDK 1.8** e vincula a biblioteca global `libs-java`.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 🛠️ Fluxos de Trabalho (Workflows)
|
|
64
|
+
|
|
65
|
+
Dependendo do modelo escolhido, o fluxo de trabalho muda:
|
|
66
|
+
|
|
67
|
+
### 👉 Para Projetos Web (HTML5)
|
|
68
|
+
|
|
69
|
+
O grande trunfo aqui é a compactação automática.
|
|
70
|
+
|
|
71
|
+
1. Entre na pasta criada: `cd meu-projeto-web`
|
|
72
|
+
|
|
73
|
+
2. Inicie o monitoramento: `npm start`
|
|
74
|
+
|
|
75
|
+
3. **Desenvolva:** Ao salvar qualquer arquivo (HTML, JS, CSS), o sistema **gera automaticamente um .zip** na raiz do projeto.
|
|
76
|
+
|
|
77
|
+
4. **Implante:** Basta subir esse zip para o Repositório de Arquivos do Sankhya.
|
|
78
|
+
|
|
79
|
+
### 👉 Para Projetos Java
|
|
80
|
+
|
|
81
|
+
O foco é a integração imediata com a IDE.
|
|
82
|
+
|
|
83
|
+
1. Abra o **IntelliJ IDEA**.
|
|
84
|
+
|
|
85
|
+
2. Vá em **File > Open** e selecione a pasta do projeto criado.
|
|
86
|
+
|
|
87
|
+
3. **Pronto!** O projeto será reconhecido como módulo Java, com JDK 1.8 selecionado e pastas de source (`src`) configuradas.
|
|
88
|
+
|
|
89
|
+
> *Nota: Certifique-se de ter uma Global Library chamada `libs-java` configurada no seu IntelliJ.*
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 📂 Estruturas Geradas
|
|
94
|
+
|
|
95
|
+
Veja como cada projeto é organizado:
|
|
96
|
+
|
|
97
|
+
### 1. Web (HTML5)
|
|
98
|
+
|
|
99
|
+
Plaintext
|
|
44
100
|
|
|
45
101
|
```
|
|
46
|
-
|
|
47
|
-
|
|
102
|
+
meu-dashboard/
|
|
103
|
+
├── build.js # Automação de ZIP
|
|
104
|
+
├── index.jsp # Entry point Sankhya (<snk:load/>)
|
|
105
|
+
├── index.html # Testes locais
|
|
106
|
+
└── src/
|
|
107
|
+
├── controllers/ # Lógica JS
|
|
108
|
+
├── views/ # Manipulação de DOM
|
|
109
|
+
└── assets/ # TailwindCSS e Imagens
|
|
48
110
|
```
|
|
49
111
|
|
|
50
|
-
|
|
112
|
+
### 2. Personalização
|
|
113
|
+
|
|
114
|
+
Plaintext
|
|
51
115
|
|
|
52
|
-
|
|
116
|
+
```
|
|
117
|
+
minha-customizacao/
|
|
118
|
+
├── doc/ # Documentação funcional/técnica
|
|
119
|
+
└── src/
|
|
120
|
+
├── Function/
|
|
121
|
+
├── Procedure/
|
|
122
|
+
├── Trigger/
|
|
123
|
+
├── View/
|
|
124
|
+
└── SQL/ # Scripts gerais
|
|
125
|
+
```
|
|
53
126
|
|
|
54
|
-
|
|
127
|
+
### 3. Java (Sankhya)
|
|
55
128
|
|
|
56
|
-
|
|
129
|
+
Plaintext
|
|
57
130
|
|
|
58
|
-
|
|
131
|
+
```
|
|
132
|
+
meu-evento-java/
|
|
133
|
+
├── .idea/ # Configurações do IntelliJ (Versionado)
|
|
134
|
+
├── meu-evento.iml # Módulo Java com libs-java
|
|
135
|
+
├── out/ # Saída de compilação (Ignorado)
|
|
136
|
+
└── src/
|
|
137
|
+
└── br/com/sankhya/meuevento/
|
|
138
|
+
├── business/ # Regras de negócio (Eventos, Botões)
|
|
139
|
+
└── domain/ # Modelos e Repositórios
|
|
140
|
+
```
|
|
59
141
|
|
|
60
142
|
## 💡 Casos de Uso (Workflows)
|
|
61
143
|
|
|
62
|
-
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
|
|
63
147
|
|
|
64
148
|
### Caso A: Início Rápido de Dashboards (HTML/JSP)
|
|
65
149
|
|
|
66
150
|
> *Você precisa criar uma tela customizada para apresentar indicadores.*
|
|
67
151
|
|
|
68
|
-
1. Rode
|
|
152
|
+
1. Rode `web-arch` e nomeie como `dash-financeiro`.
|
|
69
153
|
|
|
70
|
-
2. O projeto já nasce com
|
|
154
|
+
2. O projeto já nasce com `index.jsp` contendo as importações Sankhya (`<snk:load/>`) e `index.html` para testes locais.
|
|
71
155
|
|
|
72
|
-
3. Edite o
|
|
156
|
+
3. Edite o `src/views/main.js` ou o HTML.
|
|
73
157
|
|
|
74
|
-
4. O arquivo
|
|
158
|
+
4. O arquivo `dash-financeiro.zip` é atualizado instantaneamente.
|
|
75
159
|
|
|
76
160
|
5. Faça o upload do ZIP no "Repositório de Arquivos" do sistema.
|
|
77
161
|
|
|
@@ -79,7 +163,7 @@ Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
|
|
|
79
163
|
|
|
80
164
|
> *Você quer testar um layout moderno sem configurar Webpack ou PostCSS.*
|
|
81
165
|
|
|
82
|
-
1. Rode
|
|
166
|
+
1. Rode `web-arch`.
|
|
83
167
|
|
|
84
168
|
2. Vá direto ao HTML e comece a usar classes utilitárias:
|
|
85
169
|
|
|
@@ -87,7 +171,7 @@ Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
|
|
|
87
171
|
|
|
88
172
|
```
|
|
89
173
|
<div class="bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
|
90
|
-
|
|
174
|
+
Olá, Mundo!
|
|
91
175
|
</div>
|
|
92
176
|
```
|
|
93
177
|
|
|
@@ -97,44 +181,16 @@ Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
|
|
|
97
181
|
|
|
98
182
|
> *Vários desenvolvedores trabalhando em telas diferentes.*
|
|
99
183
|
|
|
100
|
-
Ao usar o comando
|
|
184
|
+
Ao usar o comando `web-arch`, todos os projetos seguem a mesma árvore:
|
|
101
185
|
|
|
102
|
-
- `src/controllers/`
|
|
186
|
+
- `src/controllers/` (Lógica de negócio)
|
|
103
187
|
|
|
104
|
-
- `src/views/`
|
|
188
|
+
- `src/views/` (Manipulação de DOM)
|
|
105
189
|
|
|
106
|
-
- `src/services/`
|
|
190
|
+
- `src/services/` (Chamadas de API)
|
|
107
191
|
|
|
108
192
|
Isso facilita a manutenção cruzada: qualquer desenvolvedor sabe onde encontrar o código.
|
|
109
193
|
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## 📂 Estrutura do Projeto Gerado
|
|
113
|
-
|
|
114
|
-
Plaintext
|
|
115
|
-
|
|
116
|
-
```
|
|
117
|
-
meu-projeto/
|
|
118
|
-
├── .git/
|
|
119
|
-
├── node_modules/
|
|
120
|
-
├── src/
|
|
121
|
-
│ ├── assets/
|
|
122
|
-
│ │ ├── css/ # Estilos globais
|
|
123
|
-
│ │ ├── js/ # Bibliotecas (Tailwind, etc)
|
|
124
|
-
│ ├── components/ # Fragmentos de UI
|
|
125
|
-
│ ├── controllers/ # Lógica
|
|
126
|
-
│ ├── services/ # Integrações
|
|
127
|
-
│ ├── utils/ # Funções auxiliares
|
|
128
|
-
│ └── main.js # Ponto de entrada JS
|
|
129
|
-
├── build.js # Script de automação (Zip automático)
|
|
130
|
-
├── index.html # Para rodar no navegador local
|
|
131
|
-
├── index.jsp # Para rodar no servidor
|
|
132
|
-
├── package.json
|
|
133
|
-
└── README.md
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
194
|
## 🛠 Comandos do Projeto (Scripts)
|
|
139
195
|
|
|
140
196
|
Dentro da pasta do projeto criado, você pode usar:
|
|
@@ -143,3 +199,5 @@ Dentro da pasta do projeto criado, você pode usar:
|
|
|
143
199
|
| --------------- | --------------------------------------------------- |
|
|
144
200
|
| `npm start` | Inicia o monitoramento. Altera arquivo -> Gera ZIP. |
|
|
145
201
|
| `npm run build` | Gera o ZIP apenas uma vez e encerra. |
|
|
202
|
+
|
|
203
|
+
|
package/bin/index.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
if (process.platform === "win32") {
|
|
4
|
+
try {
|
|
5
|
+
require("child_process").execSync("chcp 65001", { stdio: 'ignore' });
|
|
6
|
+
} catch (e) {
|
|
7
|
+
|
|
8
|
+
}
|
|
9
|
+
}
|
|
2
10
|
const fs = require('fs');
|
|
3
11
|
const path = require('path');
|
|
4
12
|
const { execSync } = require('child_process');
|
package/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "web-architect-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"web-arch": "bin/index.js"
|
|
8
8
|
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"archiver": "^7.0.0"
|
|
11
|
+
},
|
|
9
12
|
"scripts": {
|
|
10
13
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
11
14
|
},
|