Fix IDE setup crash: yaml module not found in production

_base-ide.js required the 'yaml' package (devDependency only) instead of
'js-yaml' (production dependency), causing all IDE integrations to fail
during npx install. Also cleans up legacy _wds-learn/ during migration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Mårten Angner 2026-03-01 19:30:02 +01:00
parent 69d9b733bf
commit 54241b1a90
3 changed files with 10 additions and 3 deletions

View File

@ -1,7 +1,7 @@
{ {
"$schema": "https://json.schemastore.org/package.json", "$schema": "https://json.schemastore.org/package.json",
"name": "whiteport-design-studio", "name": "whiteport-design-studio",
"version": "0.3.1", "version": "0.3.2",
"description": "Whiteport Design Studio - Strategic design methodology for AI-powered workflows", "description": "Whiteport Design Studio - Strategic design methodology for AI-powered workflows",
"keywords": [ "keywords": [
"design", "design",

View File

@ -1,7 +1,7 @@
const path = require('node:path'); const path = require('node:path');
const fs = require('fs-extra'); const fs = require('fs-extra');
const chalk = require('chalk'); const chalk = require('chalk');
const yaml = require('yaml'); const yaml = require('js-yaml');
/** /**
* Base class for IDE-specific setup * Base class for IDE-specific setup
@ -138,7 +138,7 @@ class BaseIdeSetup {
// Try to extract YAML frontmatter // Try to extract YAML frontmatter
const frontmatterMatch = content.match(/^---\s*\n([\s\S]*?)\n---/); const frontmatterMatch = content.match(/^---\s*\n([\s\S]*?)\n---/);
if (frontmatterMatch) { if (frontmatterMatch) {
const frontmatter = yaml.parse(frontmatterMatch[1]); const frontmatter = yaml.load(frontmatterMatch[1]);
return { return {
name: frontmatter.name || path.basename(filePath, '.md'), name: frontmatter.name || path.basename(filePath, '.md'),

View File

@ -45,6 +45,13 @@ class Installer {
const migrateSpinner = ora(`Migrating _wds/ → ${wdsFolder}/...`).start(); const migrateSpinner = ora(`Migrating _wds/ → ${wdsFolder}/...`).start();
await fs.ensureDir(path.dirname(wdsDir)); await fs.ensureDir(path.dirname(wdsDir));
await fs.remove(legacyDir); await fs.remove(legacyDir);
// Also remove legacy _wds-learn/ (will be recreated if learning material is selected)
const legacyLearnDir = path.join(projectDir, '_wds-learn');
if (await fs.pathExists(legacyLearnDir)) {
await fs.remove(legacyLearnDir);
}
migrateSpinner.succeed(`Legacy _wds/ removed — installing fresh at ${wdsFolder}/`); migrateSpinner.succeed(`Legacy _wds/ removed — installing fresh at ${wdsFolder}/`);
} }