diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 3bcb5d5c..bfce54d4 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -29,6 +29,34 @@ } } }, + { + "type": "npm", + "script": "watchreactd", + "label": "React - Build", + "isBackground": true, + "presentation": { + "reveal": "never", + "group": "buildWatchers", + "close": false + }, + "problemMatcher": { + "owner": "typescript", + "applyTo": "closedDocuments", + "fileLocation": [ + "absolute" + ], + "pattern": { + "regexp": "Error: ([^(]+)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\): (.*)$", + "file": 1, + "location": 2, + "message": 3 + }, + "background": { + "beginsPattern": "Starting compilation", + "endsPattern": "Finished compilation" + } + } + }, { "type": "npm", "script": "watch-extensionsd", @@ -61,7 +89,8 @@ "label": "VS Code - Build", "dependsOn": [ "Core - Build", - "Ext - Build" + "Ext - Build", + "React - Build" ], "group": { "kind": "build", diff --git a/package.json b/package.json index 394a05a8..c8f0159b 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "scripts": { "buildreact": "cd ./src/vs/workbench/contrib/void/browser/react/ && node build.js && cd ../../../../../../../", "watchreact": "cd ./src/vs/workbench/contrib/void/browser/react/ && node build.js --watch && cd ../../../../../../../", + "watchreactd": "deemon npm run watchreact", "test": "echo Please run any of the test scripts from the scripts folder.", "test-browser": "npx playwright install && node test/unit/browser/index.js", "test-browser-amd": "npx playwright install && node test/unit/browser/index.amd.js", @@ -25,7 +26,7 @@ "preinstall": "node build/npm/preinstall.js", "postinstall": "node build/npm/postinstall.js", "compile": "node ./node_modules/gulp/bin/gulp.js compile", - "watch": "npm-run-all -lp watch-client watch-extensions", + "watch": "npm-run-all -lp watchreact watch-client watch-extensions", "watch-amd": "npm-run-all -lp watch-client-amd watch-extensions", "watchd": "deemon npm run watch", "watch-webd": "deemon npm run watch-web", diff --git a/src/vs/workbench/contrib/void/browser/react/build.js b/src/vs/workbench/contrib/void/browser/react/build.js index 436d10ce..ece3ebf6 100755 --- a/src/vs/workbench/contrib/void/browser/react/build.js +++ b/src/vs/workbench/contrib/void/browser/react/build.js @@ -80,6 +80,22 @@ const args = process.argv.slice(2); const isWatch = args.includes('--watch') || args.includes('-w'); if (isWatch) { + // this just builds it if it doesn't exist instead of waiting for the watcher to trigger + // Check if src2/ exists; if not, do an initial scope-tailwind build + if (!fs.existsSync('src2')) { + try { + console.log('🔨 Running initial scope-tailwind build to create src2 folder...'); + execSync( + 'npx scope-tailwind ./src -o src2/ -s void-scope -c styles.css -p "void-"', + { stdio: 'inherit' } + ); + console.log('✅ src2/ created successfully.'); + } catch (err) { + console.error('❌ Error running initial scope-tailwind build:', err); + process.exit(1); + } + } + // Watch mode const scopeTailwindWatcher = spawn('npx', [ 'nodemon',