diff --git a/package.json b/package.json index e1213dce..83620193 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ "auth": "npm run auth:npm && npm run auth:docker", "generate": "node scripts/generate-git-commit-info.js", "build": "node scripts/build.js", - "build:all": "npm run build && npm run build:sandbox", + "build:vscode": "node scripts/build_vscode_companion.js", + "build:all": "npm run build && npm run build:sandbox && npm run build:vscode", "build:packages": "npm run build --workspaces", "build:sandbox": "node scripts/build_sandbox.js --skip-npm-install-build", "bundle": "npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js", diff --git a/scripts/build.js b/scripts/build.js index edf0b3f8..2555a750 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -33,10 +33,6 @@ if (!existsSync(join(root, 'node_modules'))) { // build all workspaces/packages execSync('npm run generate', { stdio: 'inherit', cwd: root }); execSync('npm run build --workspaces', { stdio: 'inherit', cwd: root }); -execSync('npx --yes @vscode/vsce package --no-dependencies', { - stdio: 'inherit', - cwd: join(root, 'packages', 'vscode-ide-companion'), -}); // also build container image if sandboxing is enabled // skip (-s) npm install + build since we did that above diff --git a/scripts/build_vscode_companion.js b/scripts/build_vscode_companion.js new file mode 100644 index 00000000..5bcda2cd --- /dev/null +++ b/scripts/build_vscode_companion.js @@ -0,0 +1,30 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { execSync } from 'child_process'; +import { dirname, join } from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const root = join(__dirname, '..'); + +execSync('npx --yes @vscode/vsce package --no-dependencies', { + stdio: 'inherit', + cwd: join(root, 'packages', 'vscode-ide-companion'), +});