fix(windows): resolve process-tree gyp from package peer

This commit is contained in:
Jinwoo-H
2026-08-27 20:39:40 -04:00
parent 2c1ada44b0
commit 2eeb28de09
4 changed files with 9 additions and 8 deletions
@@ -7,7 +7,7 @@ index 855bd4b86f0a3c18c7594212c0e42b6e35bc4001..5f15551cb1520af996f216500a83ac68
"target_name": "windows_process_tree",
"dependencies": [
- "<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except",
+ "node_modules/node-addon-api/node_addon_api.gyp:node_addon_api_except",
+ "../../node-addon-api/node_addon_api.gyp:node_addon_api_except",
],
"conditions": [
['OS==\"win\"', {
@@ -68,7 +68,7 @@ function assertPatchApplied() {
'config/patches/@vscode__windows-process-tree@0.8.0.patch; run pnpm install.'
)
}
if (!bindingGyp.includes('node_modules/node-addon-api/node_addon_api.gyp')) {
if (!bindingGyp.includes('../../node-addon-api/node_addon_api.gyp')) {
throw new Error(
'binding.gyp still uses a dynamic node-addon-api path. The local package path avoids ' +
'pnpm store and Windows drive-letter normalization issues. ' +
@@ -94,7 +94,7 @@ function applyWindowsProcessTreeBuildFixes() {
const originalBinding = bindingGyp
const originalProcess = processCc
const localDependency = 'node_modules/node-addon-api/node_addon_api.gyp:node_addon_api_except'
const localDependency = '../../node-addon-api/node_addon_api.gyp:node_addon_api_except'
for (const dynamicDependency of [
String.raw`<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except`,
String.raw`<!(node -p \"require.resolve('node-addon-api/node_addon_api.gyp')\"):node_addon_api_except`
@@ -9,13 +9,13 @@ const PATCH = readFileSync(
'utf8'
)
const PACKAGE_DIR = join(projectDir, 'node_modules', '@vscode', 'windows-process-tree')
const LOCAL_GYP = 'node_modules/node-addon-api/node_addon_api.gyp'
const LOCAL_GYP = '../../node-addon-api/node_addon_api.gyp'
const RESOLVED_GYP = "require.resolve('node-addon-api/node_addon_api.gyp')"
describe('windows-process-tree node-addon-api gyp path', () => {
it('keeps the gyp project path local so pnpm Windows source builds find it', () => {
expect(PATCH).toContain(
'+ "node_modules/node-addon-api/node_addon_api.gyp:node_addon_api_except",'
'+ "../../node-addon-api/node_addon_api.gyp:node_addon_api_except",'
)
const buildScript = readFileSync(
join(projectDir, 'config/scripts/build-windows-process-tree-relay-addon.mjs'),
@@ -26,6 +26,7 @@ describe('windows-process-tree node-addon-api gyp path', () => {
})
it('resolves node_addon_api.gyp to a real file from the package directory', () => {
expect(existsSync(resolve(PACKAGE_DIR, LOCAL_GYP))).toBe(true)
const resolved = execFileSync(process.execPath, ['-p', RESOLVED_GYP], {
cwd: PACKAGE_DIR,
encoding: 'utf8'
+3 -3
View File
@@ -9,7 +9,7 @@ overrides:
patchedDependencies:
'@vscode/windows-process-tree@0.8.0':
hash: 78f9cd88b7e14e56dbe43312011d21084dd05f314171ca21a24d58d1d1ab26b7
hash: 0df1b8fb1db110383f88ff947d79ad29579709a347a7be03792e5f347c407929
path: config/patches/@vscode__windows-process-tree@0.8.0.patch
'@xterm/addon-ligatures@0.11.0-beta.287':
hash: 47405b9994b5acf1b4e90b49250358c1ca03649854d59560e7732b72fe336920
@@ -407,7 +407,7 @@ importers:
optionalDependencies:
'@vscode/windows-process-tree':
specifier: 0.8.0
version: 0.8.0(patch_hash=78f9cd88b7e14e56dbe43312011d21084dd05f314171ca21a24d58d1d1ab26b7)
version: 0.8.0(patch_hash=0df1b8fb1db110383f88ff947d79ad29579709a347a7be03792e5f347c407929)
sherpa-onnx-darwin-arm64:
specifier: 1.12.37
version: 1.12.37
@@ -9606,7 +9606,7 @@ snapshots:
convert-source-map: 2.0.0
tinyrainbow: 3.1.0
'@vscode/windows-process-tree@0.8.0(patch_hash=78f9cd88b7e14e56dbe43312011d21084dd05f314171ca21a24d58d1d1ab26b7)':
'@vscode/windows-process-tree@0.8.0(patch_hash=0df1b8fb1db110383f88ff947d79ad29579709a347a7be03792e5f347c407929)':
dependencies:
node-addon-api: 7.1.0
optional: true