responsive-system 1.1.0 → 1.1.2
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 +80 -11
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -19,26 +19,34 @@ 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('📦 responsive-system: Ejecutando postinstall...')
|
|
23
|
+
console.log(` Directorio del proyecto: ${projectRoot}`)
|
|
24
|
+
|
|
22
25
|
// Verificar si package.json existe
|
|
23
26
|
if (!fs.existsSync(packageJsonPath)) {
|
|
24
27
|
console.log('📦 responsive-system: No se encontró package.json, saltando postinstall')
|
|
25
28
|
process.exit(0)
|
|
26
29
|
}
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
let packageJson
|
|
32
|
+
try {
|
|
33
|
+
packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))
|
|
34
|
+
} catch (error) {
|
|
35
|
+
console.error('❌ responsive-system: Error al leer package.json:', error.message)
|
|
36
|
+
process.exit(1)
|
|
37
|
+
}
|
|
29
38
|
|
|
30
39
|
// Verificar si el proyecto está vacío (solo tiene responsive-system)
|
|
31
40
|
const isProjectEmpty = !packageJson.dependencies ||
|
|
32
41
|
Object.keys(packageJson.dependencies).length === 0 ||
|
|
33
42
|
(Object.keys(packageJson.dependencies).length === 1 && packageJson.dependencies['responsive-system'])
|
|
34
43
|
|
|
35
|
-
// Verificar qué está instalado
|
|
44
|
+
// 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
|
|
36
46
|
const hasReact = (packageJson.dependencies && packageJson.dependencies.react) ||
|
|
37
|
-
(packageJson.devDependencies && packageJson.devDependencies.react)
|
|
38
|
-
fs.existsSync(path.join(projectRoot, 'node_modules', 'react'))
|
|
47
|
+
(packageJson.devDependencies && packageJson.devDependencies.react)
|
|
39
48
|
|
|
40
|
-
const hasVite =
|
|
41
|
-
fs.existsSync(path.join(projectRoot, 'node_modules', 'vite'))
|
|
49
|
+
const hasVite = packageJson.devDependencies && packageJson.devDependencies.vite
|
|
42
50
|
|
|
43
51
|
const tailwindInDevDeps = packageJson.devDependencies && packageJson.devDependencies.tailwindcss
|
|
44
52
|
const typescriptInDevDeps = packageJson.devDependencies && packageJson.devDependencies.typescript
|
|
@@ -67,17 +75,42 @@ if (!typescriptInDevDeps) {
|
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
// Instalar React como dependencies (se necesita en runtime)
|
|
78
|
+
// Usar --save explícitamente para asegurar que se agregue al package.json
|
|
70
79
|
if (reactPackages.length > 0) {
|
|
71
80
|
console.log('📦 responsive-system: Instalando React...')
|
|
72
81
|
console.log(` Instalando: ${reactPackages.join(', ')}`)
|
|
73
82
|
try {
|
|
74
|
-
execSync(`npm install ${reactPackages.join(' ')}`, {
|
|
83
|
+
execSync(`npm install ${reactPackages.join(' ')} --save`, {
|
|
75
84
|
stdio: 'inherit',
|
|
76
85
|
cwd: projectRoot
|
|
77
86
|
})
|
|
78
|
-
|
|
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
|
+
}
|
|
79
104
|
} catch (error) {
|
|
80
|
-
console.warn('⚠️ responsive-system: Error al instalar React')
|
|
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')
|
|
81
114
|
}
|
|
82
115
|
}
|
|
83
116
|
|
|
@@ -90,9 +123,45 @@ if (devPackages.length > 0) {
|
|
|
90
123
|
stdio: 'inherit',
|
|
91
124
|
cwd: projectRoot
|
|
92
125
|
})
|
|
93
|
-
|
|
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
|
+
}
|
|
94
151
|
} catch (error) {
|
|
95
|
-
console.warn('⚠️ responsive-system: Error al instalar dependencias de desarrollo')
|
|
152
|
+
console.warn('⚠️ responsive-system: Error al instalar dependencias de desarrollo, agregando manualmente a package.json...')
|
|
153
|
+
// Agregar manualmente al package.json
|
|
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')
|
|
96
165
|
}
|
|
97
166
|
}
|
|
98
167
|
|