fix: build VS Code extension correctly from oc-dev

Run oc-dev with Node to avoid Bun setting NODE_ENV=development
Keep local VSIX install flow aligned with the working shell script
This commit is contained in:
Bohdan Triapitsyn
2026-07-01 23:44:10 +03:00
parent 8f685f8db7
commit 4087ee6082
2 changed files with 20 additions and 12 deletions
+19 -11
View File
@@ -44,7 +44,7 @@ const isMac = process.platform === 'darwin';
function printHelp() {
console.log(`Usage:
bun run oc-dev [action] [options]
bun scripts/oc-dev.mjs [action] [options]
node scripts/oc-dev.mjs [action] [options]
Actions:
build-deploy-web Build web package and deploy
@@ -493,19 +493,27 @@ function startVsCodeExtension() {
}
async function installVsCodeExtensionLocal(options) {
const cleanup = await chooseValue(options.vsixCleanup, [
{ value: 'delete', label: 'Delete VSIX after install' },
{ value: 'keep', label: 'Keep VSIX after install' },
], 'Select VSIX cleanup mode');
let cleanup = options.vsixCleanup;
if (!cleanup && isTty) {
cleanup = await chooseValue('', [
{ value: 'delete', label: 'Delete VSIX after install' },
{ value: 'keep', label: 'Keep VSIX after install' },
], 'Select VSIX cleanup mode');
}
cleanup ||= 'delete';
if (!['delete', 'keep'].includes(cleanup)) throw new Error('Invalid --vsix-cleanup. Use delete or keep.');
const vscodeDir = path.join(repoRoot, 'packages/vscode');
step('Building VS Code extension', () => run('bun', ['run', '--cwd', 'packages/vscode', 'build']));
removeFilesByPrefixSuffix(vscodeDir, 'openchamber-', '.vsix');
step('Removing found VSIX package(s) before install flow', () => removeFilesByPrefixSuffix(vscodeDir, 'openchamber-', '.vsix'));
step('Packaging VSIX', () => run('bunx', ['vsce', 'package', '--no-dependencies'], { cwd: vscodeDir }));
run('code', ['--uninstall-extension', 'fedaykindev.openchamber'], { label: 'uninstall old extension', allowFail: true });
const vsix = latestFileByExtensions(vscodeDir, ['.vsix']);
if (!vsix) throw new Error('VSIX package was not created.');
step('Installing VSIX locally', () => run('code', ['--install-extension', vsix]));
if (cleanup === 'delete') removeFilesByPrefixSuffix(vscodeDir, 'openchamber-', '.vsix');
step('Installing VSIX locally', () => {
run('code', ['--uninstall-extension', 'fedaykindev.openchamber'], { label: 'uninstall old extension', allowFail: true });
run('code --install-extension packages/vscode/openchamber-*.vsix', [], { shell: true, label: 'install VSIX' });
});
if (cleanup === 'delete') {
step('Removing local VSIX package(s) after install', () => removeFilesByPrefixSuffix(vscodeDir, 'openchamber-', '.vsix'));
}
}
async function createRelease(options) {