responsive-system 1.1.1 → 1.1.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "responsive-system",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "Sistema de layout responsivo con auto-scaling para Tailwind CSS",
5
5
  "type": "module",
6
6
  "main": "./dist/responsive-system.cjs",
@@ -19,13 +19,24 @@ const __dirname = path.dirname(__filename)
19
19
  const projectRoot = process.cwd()
20
20
  const packageJsonPath = path.join(projectRoot, 'package.json')
21
21
 
22
+ console.log('')
23
+ console.log('📦 responsive-system: Iniciando postinstall...')
24
+ console.log(` Directorio: ${projectRoot}`)
25
+ console.log('')
26
+
22
27
  // Verificar si package.json existe
23
28
  if (!fs.existsSync(packageJsonPath)) {
24
- console.log('📦 responsive-system: No se encontró package.json, saltando postinstall')
29
+ console.log('⚠️ responsive-system: No se encontró package.json, saltando postinstall')
25
30
  process.exit(0)
26
31
  }
27
32
 
28
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
33
+ let packageJson
34
+ try {
35
+ packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
36
+ } catch (error) {
37
+ console.error('❌ responsive-system: Error al leer package.json:', error.message)
38
+ process.exit(1)
39
+ }
29
40
 
30
41
  // Verificar si el proyecto está vacío (solo tiene responsive-system)
31
42
  const isProjectEmpty = !packageJson.dependencies ||
@@ -33,7 +44,6 @@ const isProjectEmpty = !packageJson.dependencies ||
33
44
  (Object.keys(packageJson.dependencies).length === 1 && packageJson.dependencies['responsive-system'])
34
45
 
35
46
  // Verificar qué está instalado SOLO en package.json (no en node_modules)
36
- // Esto asegura que se agreguen al package.json aunque estén como dependencias transitivas
37
47
  const hasReact = (packageJson.dependencies && packageJson.dependencies.react) ||
38
48
  (packageJson.devDependencies && packageJson.devDependencies.react)
39
49
 
@@ -42,62 +52,83 @@ const hasVite = packageJson.devDependencies && packageJson.devDependencies.vite
42
52
  const tailwindInDevDeps = packageJson.devDependencies && packageJson.devDependencies.tailwindcss
43
53
  const typescriptInDevDeps = packageJson.devDependencies && packageJson.devDependencies.typescript
44
54
 
45
- // Separar paquetes: React (dependencies) vs TypeScript/Tailwind/Vite (devDependencies)
46
- const reactPackages = []
47
- const devPackages = []
55
+ let needsUpdate = false
56
+
57
+ // ESTRATEGIA: Modificar directamente el package.json primero, luego instalar
58
+ console.log('📦 responsive-system: Verificando dependencias...')
48
59
 
49
- // React
60
+ // Agregar React a dependencies
50
61
  if (!hasReact) {
51
- reactPackages.push('react@^19.1.1', 'react-dom@^19.1.1')
62
+ console.log(' Agregando React a dependencies...')
63
+ if (!packageJson.dependencies) {
64
+ packageJson.dependencies = {}
65
+ }
66
+ packageJson.dependencies['react'] = '^19.1.1'
67
+ packageJson.dependencies['react-dom'] = '^19.1.1'
68
+ needsUpdate = true
52
69
  }
53
70
 
54
- // Vite (si el proyecto está vacío)
71
+ // Agregar Vite si el proyecto está vacío
55
72
  if (isProjectEmpty && !hasVite) {
56
- devPackages.push('vite@^7.1.7', '@vitejs/plugin-react@^5.0.4')
73
+ console.log(' Agregando Vite a devDependencies...')
74
+ if (!packageJson.devDependencies) {
75
+ packageJson.devDependencies = {}
76
+ }
77
+ packageJson.devDependencies['vite'] = '^7.1.7'
78
+ packageJson.devDependencies['@vitejs/plugin-react'] = '^5.0.4'
79
+ needsUpdate = true
57
80
  }
58
81
 
59
- // TypeScript y Tailwind
82
+ // Agregar TypeScript y Tailwind a devDependencies
60
83
  if (!tailwindInDevDeps) {
61
- devPackages.push('tailwindcss@^4.1.14', 'postcss@^8.5.6', 'autoprefixer@^10.4.21')
84
+ console.log(' Agregando Tailwind a devDependencies...')
85
+ if (!packageJson.devDependencies) {
86
+ packageJson.devDependencies = {}
87
+ }
88
+ packageJson.devDependencies['tailwindcss'] = '^4.1.14'
89
+ packageJson.devDependencies['postcss'] = '^8.5.6'
90
+ packageJson.devDependencies['autoprefixer'] = '^10.4.21'
91
+ needsUpdate = true
62
92
  }
63
93
 
64
94
  if (!typescriptInDevDeps) {
65
- devPackages.push('typescript@~5.9.3', '@types/react@^19.1.16', '@types/react-dom@^19.1.9')
66
- }
67
-
68
- // Instalar React como dependencies (se necesita en runtime)
69
- // Usar --save explícitamente para asegurar que se agregue al package.json
70
- if (reactPackages.length > 0) {
71
- console.log('📦 responsive-system: Instalando React...')
72
- console.log(` Instalando: ${reactPackages.join(', ')}`)
73
- try {
74
- execSync(`npm install ${reactPackages.join(' ')} --save`, {
75
- stdio: 'inherit',
76
- cwd: projectRoot
77
- })
78
- console.log('✅ responsive-system: React instalado correctamente')
79
- } catch (error) {
80
- console.warn('⚠️ responsive-system: Error al instalar React')
95
+ console.log(' Agregando TypeScript a devDependencies...')
96
+ if (!packageJson.devDependencies) {
97
+ packageJson.devDependencies = {}
81
98
  }
99
+ packageJson.devDependencies['typescript'] = '~5.9.3'
100
+ packageJson.devDependencies['@types/react'] = '^19.1.16'
101
+ packageJson.devDependencies['@types/react-dom'] = '^19.1.9'
102
+ needsUpdate = true
82
103
  }
83
104
 
84
- // Instalar TypeScript, Tailwind y Vite como devDependencies
85
- if (devPackages.length > 0) {
86
- console.log('📦 responsive-system: Instalando TypeScript, Tailwind y Vite...')
87
- console.log(` Instalando: ${devPackages.join(', ')}`)
105
+ // Escribir package.json modificado
106
+ if (needsUpdate) {
107
+ console.log('')
108
+ console.log('📝 responsive-system: Actualizando package.json...')
109
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2))
110
+ console.log('✅ responsive-system: package.json actualizado')
111
+ console.log('')
112
+
113
+ // Ahora instalar las dependencias
114
+ console.log('📦 responsive-system: Instalando dependencias...')
88
115
  try {
89
- execSync(`npm install ${devPackages.join(' ')} --save-dev`, {
116
+ execSync('npm install', {
90
117
  stdio: 'inherit',
91
118
  cwd: projectRoot
92
119
  })
93
- console.log('✅ responsive-system: Dependencias de desarrollo instaladas correctamente')
120
+ console.log('✅ responsive-system: Dependencias instaladas correctamente')
94
121
  } catch (error) {
95
- console.warn('⚠️ responsive-system: Error al instalar dependencias de desarrollo')
122
+ console.error('responsive-system: Error al instalar dependencias:', error.message)
123
+ console.log('⚠️ responsive-system: Las dependencias están en package.json, ejecuta "npm install" manualmente')
96
124
  }
125
+ } else {
126
+ console.log('✅ responsive-system: Todas las dependencias ya están en package.json')
97
127
  }
98
128
 
99
129
  // Si el proyecto está vacío, crear estructura base
100
130
  if (isProjectEmpty) {
131
+ console.log('')
101
132
  console.log('📦 responsive-system: Proyecto vacío detectado, creando estructura base...')
102
133
 
103
134
  // Crear estructura de directorios
@@ -106,6 +137,7 @@ if (isProjectEmpty) {
106
137
  const dirPath = path.join(projectRoot, dir)
107
138
  if (!fs.existsSync(dirPath)) {
108
139
  fs.mkdirSync(dirPath, { recursive: true })
140
+ console.log(` ✅ Creado: ${dir}/`)
109
141
  }
110
142
  })
111
143
 
@@ -114,14 +146,13 @@ if (isProjectEmpty) {
114
146
  if (!fs.existsSync(viteConfigPath)) {
115
147
  const viteConfig = `import { defineConfig } from 'vite'
116
148
  import react from '@vitejs/plugin-react'
117
- import responsiveScalePlugin from 'responsive-system/plugin'
118
149
 
119
150
  export default defineConfig({
120
151
  plugins: [react()],
121
152
  })
122
153
  `
123
154
  fs.writeFileSync(viteConfigPath, viteConfig)
124
- console.log('✅ responsive-system: vite.config.ts creado')
155
+ console.log(' Creado: vite.config.ts')
125
156
  }
126
157
 
127
158
  // Crear tailwind.config.js
@@ -163,7 +194,7 @@ export default {
163
194
  }
164
195
  `
165
196
  fs.writeFileSync(tailwindConfigPath, tailwindConfig)
166
- console.log('✅ responsive-system: tailwind.config.js creado')
197
+ console.log(' Creado: tailwind.config.js')
167
198
  }
168
199
 
169
200
  // Crear postcss.config.js
@@ -177,7 +208,7 @@ export default {
177
208
  }
178
209
  `
179
210
  fs.writeFileSync(postcssConfigPath, postcssConfig)
180
- console.log('✅ responsive-system: postcss.config.js creado')
211
+ console.log(' Creado: postcss.config.js')
181
212
  }
182
213
 
183
214
  // Crear tsconfig.json
@@ -206,7 +237,7 @@ export default {
206
237
  }
207
238
  `
208
239
  fs.writeFileSync(tsconfigPath, tsconfig)
209
- console.log('✅ responsive-system: tsconfig.json creado')
240
+ console.log(' Creado: tsconfig.json')
210
241
  }
211
242
 
212
243
  // Crear tsconfig.node.json
@@ -224,6 +255,7 @@ export default {
224
255
  }
225
256
  `
226
257
  fs.writeFileSync(tsconfigNodePath, tsconfigNode)
258
+ console.log(' ✅ Creado: tsconfig.node.json')
227
259
  }
228
260
 
229
261
  // Crear index.html
@@ -244,7 +276,7 @@ export default {
244
276
  </html>
245
277
  `
246
278
  fs.writeFileSync(indexHtmlPath, indexHtml)
247
- console.log('✅ responsive-system: index.html creado')
279
+ console.log(' Creado: index.html')
248
280
  }
249
281
 
250
282
  // Crear src/main.tsx
@@ -267,7 +299,7 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
267
299
  )
268
300
  `
269
301
  fs.writeFileSync(mainTsxPath, mainTsx)
270
- console.log('✅ responsive-system: src/main.tsx creado')
302
+ console.log(' Creado: src/main.tsx')
271
303
  }
272
304
 
273
305
  // Crear src/index.css
@@ -278,7 +310,7 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
278
310
  @tailwind utilities;
279
311
  `
280
312
  fs.writeFileSync(indexCssPath, indexCss)
281
- console.log('✅ responsive-system: src/index.css creado')
313
+ console.log(' Creado: src/index.css')
282
314
  }
283
315
 
284
316
  // Crear src/App.tsx con página de ejemplo
@@ -348,7 +380,7 @@ function App() {
348
380
  export default App
349
381
  `
350
382
  fs.writeFileSync(appTsxPath, appTsx)
351
- console.log('✅ responsive-system: src/App.tsx creado con página de ejemplo')
383
+ console.log(' Creado: src/App.tsx con página de ejemplo')
352
384
  }
353
385
 
354
386
  // Actualizar package.json con scripts
@@ -366,7 +398,7 @@ export default App
366
398
  }
367
399
 
368
400
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2))
369
- console.log('✅ responsive-system: package.json actualizado con scripts')
401
+ console.log(' Actualizado: package.json con scripts')
370
402
 
371
403
  console.log('')
372
404
  console.log('🎉 responsive-system: Proyecto inicializado correctamente!')
@@ -377,15 +409,6 @@ export default App
377
409
  console.log('')
378
410
  }
379
411
 
380
- if (reactPackages.length === 0 && devPackages.length === 0 && !isProjectEmpty) {
381
- console.log('✅ responsive-system: Todas las dependencias están instaladas')
382
- }
383
-
384
- // Verificar si tailwind.config.js existe (solo si no es proyecto vacío)
385
- if (!isProjectEmpty) {
386
- const tailwindConfigPath = path.join(projectRoot, 'tailwind.config.js')
387
- if (!fs.existsSync(tailwindConfigPath)) {
388
- console.log('💡 responsive-system: No se encontró tailwind.config.js')
389
- console.log(' Ejecuta: npx tailwindcss init -p')
390
- }
391
- }
412
+ console.log('')
413
+ console.log('✅ responsive-system: postinstall completado')
414
+ console.log('')