Skip to content

Commit 4d32bc9

Browse files
committed
ifix: resolve pnpm installation errors and extension packaging issues in Codespaces
Problem: - ERR_PNPM_Unknown system error -116 occurred during pnpm install in Codespaces - Build failed due to vite version conflicts when running just package - .vsix package included 242 unnecessary files, wasting space Solution: - Added .npmrc to use copy mode instead of hard-linking for Codespaces overlay filesystem - Added .vsixignore to exclude development files (root node_modules, docs, tests, etc.) - Redesigned dependency structure: separated into root (shared devDeps), extension (runtime deps), view (view-specific devDeps) - Removed src/package.json to eliminate unnecessary nested structure and simplify dependency management - Consolidated justfile scripts to invoke each package's scripts from root
1 parent 2ff5a4a commit 4d32bc9

File tree

12 files changed

+518
-13980
lines changed

12 files changed

+518
-13980
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
- uses: extractions/setup-just@v3
3838

3939
- name: Install dependencies
40-
run: just deps-extension
40+
run: just deps
4141

4242
- name: Run tests with coverage
4343
run: just test coverage

.npmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package-import-method=copy

.vsixignore

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
.vscode/**
2+
.vscode-test/**
3+
src/view/**
4+
src/extension/tests/**
5+
src/extension/coverage/**
6+
src/tests/**
7+
docs/**
8+
.husky/**
9+
.github/**
10+
*.vsix
11+
pnpm-lock.yaml
12+
.npmrc
13+
.prettierignore
14+
.lintstagedrc.js
15+
.releaserc.json
16+
justfile
17+
node_modules/**

justfile

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,9 @@ src_dir := root_dir + "/src"
55
extension_dir := src_dir + "/extension"
66
view_dir := src_dir + "/view"
77

8-
deps: deps-root deps-src deps-extension deps-view
9-
10-
deps-root:
8+
deps:
119
cd "{{ root_dir }}" && pnpm install
12-
13-
deps-src:
14-
cd "{{ src_dir }}" && pnpm install
15-
16-
deps-extension:
1710
cd "{{ extension_dir }}" && pnpm install
18-
19-
deps-view:
2011
cd "{{ view_dir }}" && pnpm install
2112

2213
install-package:
@@ -60,10 +51,10 @@ lint target="all":
6051
esac
6152

6253
package: clean-build
63-
cd "{{ view_dir }}" && pnpm build
54+
pnpm build
6455
cp -r "{{ view_dir }}/dist" "{{ extension_dir }}/view-dist"
65-
cd "{{ extension_dir }}" && pnpm compile
66-
cd "{{ root_dir }}" && pnpm package
56+
pnpm compile
57+
pnpm package
6758

6859
publish target="both":
6960
#!/usr/bin/env bash
@@ -108,7 +99,7 @@ run-view:
10899

109100
test mode="":
110101
#!/usr/bin/env bash
111-
cd "{{ extension_dir }}"
102+
cd "{{ root_dir }}"
112103
if [ "{{ mode }}" = "watch" ]; then
113104
pnpm test:watch
114105
elif [ "{{ mode }}" = "coverage" ]; then

package.json

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,25 +263,47 @@
263263
}
264264
},
265265
"scripts": {
266-
"package": "vsce package && find . -maxdepth 1 -name '*.vsix' ! -name '*'$npm_package_version'.vsix' -delete",
266+
"package": "vsce package --no-dependencies --allow-star-activation && find . -maxdepth 1 -name '*.vsix' ! -name '*'$npm_package_version'.vsix' -delete",
267267
"install-package": "code --install-extension quick-command-buttons-$npm_package_version.vsix",
268268
"vsce-publish": "vsce publish",
269-
"ovsx-publish": "ovsx publish"
269+
"ovsx-publish": "ovsx publish",
270+
"compile": "cd src/extension && tsc -p ./",
271+
"lint": "npx prettier --write \"src/{extension,internal,pkg,shared,tests}/**/*.ts\" \"src/view/src/**/*.{ts,tsx}\" \"**/*.{json,yml,yaml,md}\" && cd src && npx eslint --fix extension/main.ts internal pkg shared tests && cd view && npx eslint --fix src/**/*.{ts,tsx}",
272+
"test": "cd src/extension && jest",
273+
"test:watch": "cd src/extension && jest --watch",
274+
"test:coverage": "cd src/extension && jest --coverage",
275+
"test:ci": "cd src/extension && jest --ci --coverage --watchAll=false",
276+
"dev": "cd src/view && pnpm dev",
277+
"build": "cd src/view && pnpm build",
278+
"preview": "cd src/view && pnpm preview"
270279
},
271280
"devDependencies": {
281+
"@eslint/js": "9.17.0",
282+
"@jest/globals": "30.1.2",
272283
"@semantic-release/changelog": "6.0.3",
273284
"@semantic-release/commit-analyzer": "13.0.0",
274285
"@semantic-release/exec": "7.1.0",
275286
"@semantic-release/git": "10.0.1",
276287
"@semantic-release/github": "11.0.1",
277288
"@semantic-release/npm": "13.1.2",
278289
"@semantic-release/release-notes-generator": "14.0.1",
290+
"@types/jest": "30.0.0",
291+
"@types/node": "24.3.0",
292+
"@types/vscode": "1.90.0",
279293
"@vscode/vsce": "3.6.2",
280294
"conventional-changelog-conventionalcommits": "8.0.0",
295+
"eslint": "9.37.0",
296+
"eslint-plugin-import": "2.32.0",
297+
"eslint-plugin-perfectionist": "4.15.1",
298+
"globals": "16.3.0",
281299
"husky": "9.1.7",
300+
"jest": "30.1.3",
282301
"lint-staged": "15.2.11",
283302
"ovsx": "0.10.6",
284303
"prettier": "3.6.2",
285-
"semantic-release": "24.2.0"
304+
"semantic-release": "24.2.0",
305+
"ts-jest": "29.4.1",
306+
"typescript": "5.8.3",
307+
"typescript-eslint": "8.46.0"
286308
}
287309
}

0 commit comments

Comments
 (0)