slicejs-cli 2.8.4 → 2.8.5
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/commands/init/init.js +24 -16
- package/package.json +1 -1
package/commands/init/init.js
CHANGED
|
@@ -17,22 +17,24 @@ export default async function initializeProject(projectType) {
|
|
|
17
17
|
const destinationApi = getApiPath(import.meta.url);
|
|
18
18
|
const destinationSrc = getSrcPath(import.meta.url);
|
|
19
19
|
|
|
20
|
-
const fwSpinner = ora('Ensuring latest Slice framework...').start();
|
|
21
|
-
let
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
const fwSpinner = ora('Ensuring latest Slice framework...').start();
|
|
21
|
+
let latestVersion = null;
|
|
22
|
+
let sliceBaseDir;
|
|
23
|
+
try {
|
|
24
|
+
const latest = execSync('npm view slicejs-web-framework version', { cwd: projectRoot }).toString().trim();
|
|
25
|
+
latestVersion = latest;
|
|
24
26
|
const installedPkgPath = path.join(projectRoot, 'node_modules', 'slicejs-web-framework', 'package.json');
|
|
25
27
|
let installed = null;
|
|
26
28
|
if (await fs.pathExists(installedPkgPath)) {
|
|
27
29
|
const pkg = await fs.readJson(installedPkgPath);
|
|
28
30
|
installed = pkg.version;
|
|
29
31
|
}
|
|
30
|
-
if (installed !== latest) {
|
|
31
|
-
execSync(`npm install slicejs-web-framework@${latest} --save`, { cwd: projectRoot, stdio: 'inherit' });
|
|
32
|
-
}
|
|
33
|
-
sliceBaseDir = path.join(projectRoot, 'node_modules', 'slicejs-web-framework');
|
|
34
|
-
fwSpinner.succeed(`slicejs-web-framework@${latest} ready`);
|
|
35
|
-
} catch (err) {
|
|
32
|
+
if (installed !== latest) {
|
|
33
|
+
execSync(`npm install slicejs-web-framework@${latest} --save`, { cwd: projectRoot, stdio: 'inherit' });
|
|
34
|
+
}
|
|
35
|
+
sliceBaseDir = path.join(projectRoot, 'node_modules', 'slicejs-web-framework');
|
|
36
|
+
fwSpinner.succeed(`slicejs-web-framework@${latest} ready`);
|
|
37
|
+
} catch (err) {
|
|
36
38
|
const fallback = path.join(path.dirname(fileURLToPath(import.meta.url)), '../../../slicejs-web-framework');
|
|
37
39
|
if (await fs.pathExists(fallback)) {
|
|
38
40
|
sliceBaseDir = fallback;
|
|
@@ -178,7 +180,8 @@ export default async function initializeProject(projectType) {
|
|
|
178
180
|
};
|
|
179
181
|
}
|
|
180
182
|
|
|
181
|
-
pkg.scripts = pkg.scripts || {};
|
|
183
|
+
pkg.scripts = pkg.scripts || {};
|
|
184
|
+
pkg.dependencies = pkg.dependencies || {};
|
|
182
185
|
|
|
183
186
|
// Comandos principales
|
|
184
187
|
pkg.scripts['dev'] = 'slice dev';
|
|
@@ -210,11 +213,16 @@ export default async function initializeProject(projectType) {
|
|
|
210
213
|
pkg.scripts['slice:sync'] = 'slice sync';
|
|
211
214
|
pkg.scripts['run'] = 'slice dev';
|
|
212
215
|
|
|
213
|
-
// Configuración de módulo
|
|
214
|
-
pkg.type = pkg.type || 'module';
|
|
215
|
-
pkg.engines = pkg.engines || { node: '>=20.0.0' };
|
|
216
|
-
|
|
217
|
-
|
|
216
|
+
// Configuración de módulo
|
|
217
|
+
pkg.type = pkg.type || 'module';
|
|
218
|
+
pkg.engines = pkg.engines || { node: '>=20.0.0' };
|
|
219
|
+
|
|
220
|
+
// Ensure framework dependency is present
|
|
221
|
+
if (!pkg.dependencies['slicejs-web-framework']) {
|
|
222
|
+
pkg.dependencies['slicejs-web-framework'] = latestVersion ? latestVersion : 'latest';
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
await fs.writeFile(pkgPath, JSON.stringify(pkg, null, 2), 'utf8');
|
|
218
226
|
pkgSpinner.succeed('npm scripts configured successfully');
|
|
219
227
|
|
|
220
228
|
console.log('\n🎯 New recommended commands:');
|