web-architect-cli 1.0.3 → 1.0.4

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.
Files changed (3) hide show
  1. package/README.md +145 -2
  2. package/bin/index.js +0 -15
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,2 +1,145 @@
1
- # web-architect-cli
2
-
1
+ # 🏗️ Web Architect CLI
2
+
3
+ O **Web Architect CLI** é uma ferramenta de linha de comando projetada para padronizar e acelerar a criação de interfaces web (especialmente para o ecossistema Sankhya). Com um único comando, você gera uma estrutura completa, configurada com TailwindCSS e um sistema de build automático.
4
+
5
+ ## 📦 Instalação
6
+
7
+ Para utilizar a ferramenta em qualquer lugar do seu computador, instale a versão mais recente globalmente via npm:
8
+
9
+ Bash
10
+
11
+ ```
12
+ npm install -g web-architect-cli@latest
13
+ ```
14
+
15
+ > **Nota:** É necessário ter o [Node.js](https://nodejs.org/) instalado.
16
+
17
+ ---
18
+
19
+ ## 🚀 Como Utilizar
20
+
21
+ ### 1. Criando um Novo Projeto
22
+
23
+ Abra o terminal na pasta onde deseja iniciar o trabalho e execute:
24
+
25
+ Bash
26
+
27
+ ```
28
+ web-arch
29
+ ```
30
+
31
+ O assistente interativo iniciará:
32
+
33
+ 1. Ele pedirá o **nome do projeto** (ex: `painel-metas`).
34
+
35
+ 2. Criará automaticamente toda a estrutura de pastas e arquivos.
36
+
37
+ 3. Instalará as dependências necessárias.
38
+
39
+ ### 2. Fluxo de Desenvolvimento (O "Pulo do Gato")
40
+
41
+ Após criar o projeto, entre na pasta e inicie o modo de desenvolvimento:
42
+
43
+ Bash
44
+
45
+ ```
46
+ cd painel-metas
47
+ npm start
48
+ ```
49
+
50
+ **O que acontece agora?**
51
+
52
+ - O sistema entra em modo **WATCH** (monitoramento).
53
+
54
+ - Qualquer arquivo que você salvar dentro da pasta (HTML, CSS, JS), o script **automaticamente compacta o projeto** em um arquivo `.zip` com o nome da pasta (ex: `painel-metas.zip`).
55
+
56
+ - **Benefício:** Você não precisa zipar manualmente os arquivos toda vez que quiser subir para o ERP/Portal. Basta arrastar o zip gerado.
57
+
58
+ ---
59
+
60
+ ## 💡 Casos de Uso (Workflows)
61
+
62
+ Aqui estão os cenários comuns onde o **Web Architect CLI** brilha:
63
+
64
+ ### Caso A: Início Rápido de Dashboards (HTML/JSP)
65
+
66
+ > *Você precisa criar uma tela customizada para apresentar indicadores.*
67
+
68
+ 1. Rode `web-arch` e nomeie como `dash-financeiro`.
69
+
70
+ 2. O projeto já nasce com `index.jsp` contendo as importações Sankhya (`<snk:load/>`) e `index.html` para testes locais.
71
+
72
+ 3. Edite o `src/views/main.js` ou o HTML.
73
+
74
+ 4. O arquivo `dash-financeiro.zip` é atualizado instantaneamente.
75
+
76
+ 5. Faça o upload do ZIP no "Repositório de Arquivos" do sistema.
77
+
78
+ ### Caso B: Prototipagem com TailwindCSS
79
+
80
+ > *Você quer testar um layout moderno sem configurar Webpack ou PostCSS.*
81
+
82
+ 1. Rode `web-arch`.
83
+
84
+ 2. Vá direto ao HTML e comece a usar classes utilitárias:
85
+
86
+ HTML
87
+
88
+ ```
89
+ <div class="bg-blue-600 text-white p-4 rounded-lg shadow-md">
90
+ Olá, Mundo!
91
+ </div>
92
+ ```
93
+
94
+ 3. O Tailwind já vem injetado e pronto para uso via script (CDN/Local), sem build complexo.
95
+
96
+ ### Caso C: Padronização de Equipe
97
+
98
+ > *Vários desenvolvedores trabalhando em telas diferentes.*
99
+
100
+ Ao usar o comando `web-arch`, todos os projetos seguem a mesma árvore:
101
+
102
+ - `src/controllers/` (Lógica de negócio)
103
+
104
+ - `src/views/` (Manipulação de DOM)
105
+
106
+ - `src/services/` (Chamadas de API)
107
+
108
+ Isso facilita a manutenção cruzada: qualquer desenvolvedor sabe onde encontrar o código.
109
+
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
+ ## 🛠 Comandos do Projeto (Scripts)
139
+
140
+ Dentro da pasta do projeto criado, você pode usar:
141
+
142
+ | **Comando** | **Ação** |
143
+ | --------------- | --------------------------------------------------- |
144
+ | `npm start` | Inicia o monitoramento. Altera arquivo -> Gera ZIP. |
145
+ | `npm run build` | Gera o ZIP apenas uma vez e encerra. |
package/bin/index.js CHANGED
@@ -9,8 +9,6 @@ const rl = readline.createInterface({
9
9
  output: process.stdout
10
10
  });
11
11
 
12
- // --- 1. DEFINIÇÃO DOS CONTEÚDOS DOS ARQUIVOS ---
13
-
14
12
  const CONTEUDO_INDEX_JSP = `<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored ="false"%>
15
13
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
16
14
  <%@ page import="java.util.*" %>
@@ -146,8 +144,6 @@ const CONTEUDO_GITIGNORE = `node_modules/
146
144
 
147
145
  const CONTEUDO_GITATTRIBUTES = `* text=auto`;
148
146
 
149
- // --- 2. FUNÇÕES DO SISTEMA ---
150
-
151
147
  const logPasso = (emoji, msg) => console.log(`${emoji} ${msg}`);
152
148
 
153
149
  function criarPasta(caminho) {
@@ -164,8 +160,6 @@ function criarArquivo(caminho, conteudo) {
164
160
  logPasso('📄', `Arquivo criado: ${caminho}`);
165
161
  }
166
162
 
167
- // --- 3. EXECUÇÃO PRINCIPAL ---
168
-
169
163
  rl.question('🚀 Digite o nome do projeto: ', (nomeProjeto) => {
170
164
  if (!nomeProjeto) {
171
165
  console.log('❌ Nome inválido.');
@@ -179,7 +173,6 @@ rl.question('🚀 Digite o nome do projeto: ', (nomeProjeto) => {
179
173
  console.log(`🔨 INICIANDO CRIAÇÃO DO PROJETO: ${nomeProjeto}`);
180
174
  console.log(`---------------------------------------------------\n`);
181
175
 
182
- // 1. Criar Pasta Raiz
183
176
  if (fs.existsSync(raiz)) {
184
177
  console.log(`❌ A pasta '${nomeProjeto}' já existe.`);
185
178
  rl.close();
@@ -187,7 +180,6 @@ rl.question('🚀 Digite o nome do projeto: ', (nomeProjeto) => {
187
180
  }
188
181
  criarPasta(raiz);
189
182
 
190
- // 2. Criar Estrutura de Pastas
191
183
  const pastas = [
192
184
  'src/assets/css',
193
185
  'src/assets/img',
@@ -201,7 +193,6 @@ rl.question('🚀 Digite o nome do projeto: ', (nomeProjeto) => {
201
193
 
202
194
  pastas.forEach(p => criarPasta(path.join(raiz, p)));
203
195
 
204
- // 3. Criar Arquivos de Configuração e Raiz
205
196
  criarArquivo(path.join(raiz, 'index.jsp'), CONTEUDO_INDEX_JSP);
206
197
  criarArquivo(path.join(raiz, 'index.html'), CONTEUDO_INDEX_HTML);
207
198
  criarArquivo(path.join(raiz, 'build.js'), CONTEUDO_BUILD_JS);
@@ -209,7 +200,6 @@ rl.question('🚀 Digite o nome do projeto: ', (nomeProjeto) => {
209
200
  criarArquivo(path.join(raiz, '.gitattributes'), CONTEUDO_GITATTRIBUTES);
210
201
  criarArquivo(path.join(raiz, 'README.md'), `# ${nomeProjeto}\n\nProjeto gerado automaticamente.`);
211
202
 
212
- // 4. Criar Package.json
213
203
  const packageJson = {
214
204
  name: nomeProjeto,
215
205
  version: "1.0.0",
@@ -224,13 +214,10 @@ rl.question('🚀 Digite o nome do projeto: ', (nomeProjeto) => {
224
214
  };
225
215
  criarArquivo(path.join(raiz, 'package.json'), JSON.stringify(packageJson, null, 2));
226
216
 
227
- // 5. Criar Arquivos dentro de SRC
228
217
  criarArquivo(path.join(raiz, 'src/main.js'), `console.log('Aplicação iniciada');`);
229
218
 
230
- // 6. Criar Arquivos dentro de ASSETS (CSS)
231
219
  criarArquivo(path.join(raiz, 'src/assets/css/style.css'), `/* Estilos Globais */\nbody { font-family: 'Inter', sans-serif; }`);
232
220
 
233
- // --- LÓGICA DE CÓPIA DO TAILWIND ---
234
221
  const origemTailwind = path.join(__dirname, 'tailwindcss.js');
235
222
  const destinoTailwind = path.join(raiz, 'src/assets/js/tailwindcss.js');
236
223
 
@@ -251,11 +238,9 @@ rl.question('🚀 Digite o nome do projeto: ', (nomeProjeto) => {
251
238
  console.log(`---------------------------------------------------\n`);
252
239
 
253
240
  try {
254
- // 7. Inicializar GIT
255
241
  logPasso('GitHub', '📦 Inicializando repositório Git...');
256
242
  execSync('git init', { cwd: raiz, stdio: 'inherit' });
257
243
 
258
- // 8. Instalar Dependências (Archiver)
259
244
  logPasso('NPM', ' 📦 Instalando dependência: archiver...');
260
245
  execSync('npm install archiver', { cwd: raiz, stdio: 'inherit' });
261
246
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web-architect-cli",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {