responsive-system 1.1.2 → 1.1.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.
- package/package.json +1 -1
- package/scripts/postinstall.js +72 -118
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -19,12 +19,14 @@ 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(
|
|
22
|
+
console.log('')
|
|
23
|
+
console.log('📦 responsive-system: Iniciando postinstall...')
|
|
24
|
+
console.log(` Directorio: ${projectRoot}`)
|
|
25
|
+
console.log('')
|
|
24
26
|
|
|
25
27
|
// Verificar si package.json existe
|
|
26
28
|
if (!fs.existsSync(packageJsonPath)) {
|
|
27
|
-
console.log('
|
|
29
|
+
console.log('⚠️ responsive-system: No se encontró package.json, saltando postinstall')
|
|
28
30
|
process.exit(0)
|
|
29
31
|
}
|
|
30
32
|
|
|
@@ -42,7 +44,6 @@ const isProjectEmpty = !packageJson.dependencies ||
|
|
|
42
44
|
(Object.keys(packageJson.dependencies).length === 1 && packageJson.dependencies['responsive-system'])
|
|
43
45
|
|
|
44
46
|
// Verificar qué está instalado SOLO en package.json (no en node_modules)
|
|
45
|
-
// Esto asegura que se agreguen al package.json aunque estén como dependencias transitivas
|
|
46
47
|
const hasReact = (packageJson.dependencies && packageJson.dependencies.react) ||
|
|
47
48
|
(packageJson.devDependencies && packageJson.devDependencies.react)
|
|
48
49
|
|
|
@@ -51,122 +52,83 @@ const hasVite = packageJson.devDependencies && packageJson.devDependencies.vite
|
|
|
51
52
|
const tailwindInDevDeps = packageJson.devDependencies && packageJson.devDependencies.tailwindcss
|
|
52
53
|
const typescriptInDevDeps = packageJson.devDependencies && packageJson.devDependencies.typescript
|
|
53
54
|
|
|
54
|
-
|
|
55
|
-
const reactPackages = []
|
|
56
|
-
const devPackages = []
|
|
55
|
+
let needsUpdate = false
|
|
57
56
|
|
|
58
|
-
//
|
|
57
|
+
// ESTRATEGIA: Modificar directamente el package.json primero, luego instalar
|
|
58
|
+
console.log('📦 responsive-system: Verificando dependencias...')
|
|
59
|
+
|
|
60
|
+
// Agregar React a dependencies
|
|
59
61
|
if (!hasReact) {
|
|
60
|
-
|
|
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
|
|
61
69
|
}
|
|
62
70
|
|
|
63
|
-
// Vite
|
|
71
|
+
// Agregar Vite si el proyecto está vacío
|
|
64
72
|
if (isProjectEmpty && !hasVite) {
|
|
65
|
-
|
|
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
|
|
66
80
|
}
|
|
67
81
|
|
|
68
|
-
// TypeScript y Tailwind
|
|
82
|
+
// Agregar TypeScript y Tailwind a devDependencies
|
|
69
83
|
if (!tailwindInDevDeps) {
|
|
70
|
-
|
|
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
|
|
71
92
|
}
|
|
72
93
|
|
|
73
94
|
if (!typescriptInDevDeps) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// Instalar React como dependencies (se necesita en runtime)
|
|
78
|
-
// Usar --save explícitamente para asegurar que se agregue al package.json
|
|
79
|
-
if (reactPackages.length > 0) {
|
|
80
|
-
console.log('📦 responsive-system: Instalando React...')
|
|
81
|
-
console.log(` Instalando: ${reactPackages.join(', ')}`)
|
|
82
|
-
try {
|
|
83
|
-
execSync(`npm install ${reactPackages.join(' ')} --save`, {
|
|
84
|
-
stdio: 'inherit',
|
|
85
|
-
cwd: projectRoot
|
|
86
|
-
})
|
|
87
|
-
|
|
88
|
-
// Verificar que se agregaron al package.json
|
|
89
|
-
const updatedPackageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
|
|
90
|
-
const reactAdded = updatedPackageJson.dependencies && updatedPackageJson.dependencies.react
|
|
91
|
-
if (reactAdded) {
|
|
92
|
-
console.log('✅ responsive-system: React instalado y agregado a package.json')
|
|
93
|
-
} else {
|
|
94
|
-
console.warn('⚠️ responsive-system: React instalado pero no se agregó a package.json, agregando manualmente...')
|
|
95
|
-
// Agregar manualmente si npm install no lo hizo
|
|
96
|
-
if (!updatedPackageJson.dependencies) {
|
|
97
|
-
updatedPackageJson.dependencies = {}
|
|
98
|
-
}
|
|
99
|
-
updatedPackageJson.dependencies['react'] = '^19.1.1'
|
|
100
|
-
updatedPackageJson.dependencies['react-dom'] = '^19.1.1'
|
|
101
|
-
fs.writeFileSync(packageJsonPath, JSON.stringify(updatedPackageJson, null, 2))
|
|
102
|
-
console.log('✅ responsive-system: React agregado manualmente a package.json')
|
|
103
|
-
}
|
|
104
|
-
} catch (error) {
|
|
105
|
-
console.warn('⚠️ responsive-system: Error al instalar React, agregando manualmente a package.json...')
|
|
106
|
-
// Agregar manualmente al package.json
|
|
107
|
-
if (!packageJson.dependencies) {
|
|
108
|
-
packageJson.dependencies = {}
|
|
109
|
-
}
|
|
110
|
-
packageJson.dependencies['react'] = '^19.1.1'
|
|
111
|
-
packageJson.dependencies['react-dom'] = '^19.1.1'
|
|
112
|
-
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2))
|
|
113
|
-
console.log('✅ responsive-system: React agregado manualmente a package.json')
|
|
95
|
+
console.log(' ➕ Agregando TypeScript a devDependencies...')
|
|
96
|
+
if (!packageJson.devDependencies) {
|
|
97
|
+
packageJson.devDependencies = {}
|
|
114
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
|
|
115
103
|
}
|
|
116
104
|
|
|
117
|
-
//
|
|
118
|
-
if (
|
|
119
|
-
console.log('
|
|
120
|
-
console.log(
|
|
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...')
|
|
121
115
|
try {
|
|
122
|
-
execSync(
|
|
116
|
+
execSync('npm install', {
|
|
123
117
|
stdio: 'inherit',
|
|
124
118
|
cwd: projectRoot
|
|
125
119
|
})
|
|
126
|
-
|
|
127
|
-
// Verificar que se agregaron al package.json
|
|
128
|
-
const updatedPackageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
|
|
129
|
-
const allAdded = devPackages.every(pkg => {
|
|
130
|
-
const pkgName = pkg.split('@')[0]
|
|
131
|
-
return updatedPackageJson.devDependencies && updatedPackageJson.devDependencies[pkgName]
|
|
132
|
-
})
|
|
133
|
-
|
|
134
|
-
if (allAdded) {
|
|
135
|
-
console.log('✅ responsive-system: Dependencias de desarrollo instaladas y agregadas a package.json')
|
|
136
|
-
} else {
|
|
137
|
-
console.warn('⚠️ responsive-system: Dependencias instaladas pero no todas se agregaron a package.json, agregando manualmente...')
|
|
138
|
-
// Agregar manualmente las que faltan
|
|
139
|
-
if (!updatedPackageJson.devDependencies) {
|
|
140
|
-
updatedPackageJson.devDependencies = {}
|
|
141
|
-
}
|
|
142
|
-
devPackages.forEach(pkg => {
|
|
143
|
-
const [pkgName, version] = pkg.includes('@') ? pkg.split('@') : [pkg, 'latest']
|
|
144
|
-
if (!updatedPackageJson.devDependencies[pkgName]) {
|
|
145
|
-
updatedPackageJson.devDependencies[pkgName] = version || 'latest'
|
|
146
|
-
}
|
|
147
|
-
})
|
|
148
|
-
fs.writeFileSync(packageJsonPath, JSON.stringify(updatedPackageJson, null, 2))
|
|
149
|
-
console.log('✅ responsive-system: Dependencias agregadas manualmente a package.json')
|
|
150
|
-
}
|
|
120
|
+
console.log('✅ responsive-system: Dependencias instaladas correctamente')
|
|
151
121
|
} catch (error) {
|
|
152
|
-
console.
|
|
153
|
-
|
|
154
|
-
if (!packageJson.devDependencies) {
|
|
155
|
-
packageJson.devDependencies = {}
|
|
156
|
-
}
|
|
157
|
-
devPackages.forEach(pkg => {
|
|
158
|
-
const parts = pkg.split('@')
|
|
159
|
-
const pkgName = parts[0]
|
|
160
|
-
const version = parts[1] || 'latest'
|
|
161
|
-
packageJson.devDependencies[pkgName] = version
|
|
162
|
-
})
|
|
163
|
-
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2))
|
|
164
|
-
console.log('✅ responsive-system: Dependencias agregadas manualmente a package.json')
|
|
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')
|
|
165
124
|
}
|
|
125
|
+
} else {
|
|
126
|
+
console.log('✅ responsive-system: Todas las dependencias ya están en package.json')
|
|
166
127
|
}
|
|
167
128
|
|
|
168
129
|
// Si el proyecto está vacío, crear estructura base
|
|
169
130
|
if (isProjectEmpty) {
|
|
131
|
+
console.log('')
|
|
170
132
|
console.log('📦 responsive-system: Proyecto vacío detectado, creando estructura base...')
|
|
171
133
|
|
|
172
134
|
// Crear estructura de directorios
|
|
@@ -175,6 +137,7 @@ if (isProjectEmpty) {
|
|
|
175
137
|
const dirPath = path.join(projectRoot, dir)
|
|
176
138
|
if (!fs.existsSync(dirPath)) {
|
|
177
139
|
fs.mkdirSync(dirPath, { recursive: true })
|
|
140
|
+
console.log(` ✅ Creado: ${dir}/`)
|
|
178
141
|
}
|
|
179
142
|
})
|
|
180
143
|
|
|
@@ -183,14 +146,13 @@ if (isProjectEmpty) {
|
|
|
183
146
|
if (!fs.existsSync(viteConfigPath)) {
|
|
184
147
|
const viteConfig = `import { defineConfig } from 'vite'
|
|
185
148
|
import react from '@vitejs/plugin-react'
|
|
186
|
-
import responsiveScalePlugin from 'responsive-system/plugin'
|
|
187
149
|
|
|
188
150
|
export default defineConfig({
|
|
189
151
|
plugins: [react()],
|
|
190
152
|
})
|
|
191
153
|
`
|
|
192
154
|
fs.writeFileSync(viteConfigPath, viteConfig)
|
|
193
|
-
console.log('✅
|
|
155
|
+
console.log(' ✅ Creado: vite.config.ts')
|
|
194
156
|
}
|
|
195
157
|
|
|
196
158
|
// Crear tailwind.config.js
|
|
@@ -232,7 +194,7 @@ export default {
|
|
|
232
194
|
}
|
|
233
195
|
`
|
|
234
196
|
fs.writeFileSync(tailwindConfigPath, tailwindConfig)
|
|
235
|
-
console.log('✅
|
|
197
|
+
console.log(' ✅ Creado: tailwind.config.js')
|
|
236
198
|
}
|
|
237
199
|
|
|
238
200
|
// Crear postcss.config.js
|
|
@@ -246,7 +208,7 @@ export default {
|
|
|
246
208
|
}
|
|
247
209
|
`
|
|
248
210
|
fs.writeFileSync(postcssConfigPath, postcssConfig)
|
|
249
|
-
console.log('✅
|
|
211
|
+
console.log(' ✅ Creado: postcss.config.js')
|
|
250
212
|
}
|
|
251
213
|
|
|
252
214
|
// Crear tsconfig.json
|
|
@@ -275,7 +237,7 @@ export default {
|
|
|
275
237
|
}
|
|
276
238
|
`
|
|
277
239
|
fs.writeFileSync(tsconfigPath, tsconfig)
|
|
278
|
-
console.log('✅
|
|
240
|
+
console.log(' ✅ Creado: tsconfig.json')
|
|
279
241
|
}
|
|
280
242
|
|
|
281
243
|
// Crear tsconfig.node.json
|
|
@@ -293,6 +255,7 @@ export default {
|
|
|
293
255
|
}
|
|
294
256
|
`
|
|
295
257
|
fs.writeFileSync(tsconfigNodePath, tsconfigNode)
|
|
258
|
+
console.log(' ✅ Creado: tsconfig.node.json')
|
|
296
259
|
}
|
|
297
260
|
|
|
298
261
|
// Crear index.html
|
|
@@ -313,7 +276,7 @@ export default {
|
|
|
313
276
|
</html>
|
|
314
277
|
`
|
|
315
278
|
fs.writeFileSync(indexHtmlPath, indexHtml)
|
|
316
|
-
console.log('✅
|
|
279
|
+
console.log(' ✅ Creado: index.html')
|
|
317
280
|
}
|
|
318
281
|
|
|
319
282
|
// Crear src/main.tsx
|
|
@@ -336,7 +299,7 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
|
336
299
|
)
|
|
337
300
|
`
|
|
338
301
|
fs.writeFileSync(mainTsxPath, mainTsx)
|
|
339
|
-
console.log('✅
|
|
302
|
+
console.log(' ✅ Creado: src/main.tsx')
|
|
340
303
|
}
|
|
341
304
|
|
|
342
305
|
// Crear src/index.css
|
|
@@ -347,7 +310,7 @@ ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
|
347
310
|
@tailwind utilities;
|
|
348
311
|
`
|
|
349
312
|
fs.writeFileSync(indexCssPath, indexCss)
|
|
350
|
-
console.log('✅
|
|
313
|
+
console.log(' ✅ Creado: src/index.css')
|
|
351
314
|
}
|
|
352
315
|
|
|
353
316
|
// Crear src/App.tsx con página de ejemplo
|
|
@@ -417,7 +380,7 @@ function App() {
|
|
|
417
380
|
export default App
|
|
418
381
|
`
|
|
419
382
|
fs.writeFileSync(appTsxPath, appTsx)
|
|
420
|
-
console.log('✅
|
|
383
|
+
console.log(' ✅ Creado: src/App.tsx con página de ejemplo')
|
|
421
384
|
}
|
|
422
385
|
|
|
423
386
|
// Actualizar package.json con scripts
|
|
@@ -435,7 +398,7 @@ export default App
|
|
|
435
398
|
}
|
|
436
399
|
|
|
437
400
|
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2))
|
|
438
|
-
console.log('✅
|
|
401
|
+
console.log(' ✅ Actualizado: package.json con scripts')
|
|
439
402
|
|
|
440
403
|
console.log('')
|
|
441
404
|
console.log('🎉 responsive-system: Proyecto inicializado correctamente!')
|
|
@@ -446,15 +409,6 @@ export default App
|
|
|
446
409
|
console.log('')
|
|
447
410
|
}
|
|
448
411
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
// Verificar si tailwind.config.js existe (solo si no es proyecto vacío)
|
|
454
|
-
if (!isProjectEmpty) {
|
|
455
|
-
const tailwindConfigPath = path.join(projectRoot, 'tailwind.config.js')
|
|
456
|
-
if (!fs.existsSync(tailwindConfigPath)) {
|
|
457
|
-
console.log('💡 responsive-system: No se encontró tailwind.config.js')
|
|
458
|
-
console.log(' Ejecuta: npx tailwindcss init -p')
|
|
459
|
-
}
|
|
460
|
-
}
|
|
412
|
+
console.log('')
|
|
413
|
+
console.log('✅ responsive-system: postinstall completado')
|
|
414
|
+
console.log('')
|