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:
+19
-11
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user