Skip to content

Commit c074d75

Browse files
bundle extension for vscode web editor (#122)
- add webpack.extension.config.js - add build renderer and extension scripts - add test:web script ...
1 parent 626994c commit c074d75

File tree

5 files changed

+55
-7
lines changed

5 files changed

+55
-7
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ notebooks/test
44
*.vsix
55
.vscode-test
66
.vscode-test-web
7+
.VSCodeCounter

package.json

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,17 +130,21 @@
130130
]
131131
},
132132
"scripts": {
133-
"vscode:prepublish": "npm run compile && node out/test/checkNoTestProvider.js",
133+
"vscode:prepublish": "npm run build && node out/test/checkNoTestProvider.js",
134134
"compile": "npm run compile:extension && npm run compile:renderer",
135-
"compile:extension": "tsc -b",
136-
"compile:renderer": "webpack --mode production",
135+
"compile:extension": "tsc -p src/extension",
136+
"compile:renderer": "webpack --config=./webpack.config.js",
137+
"build": "npm run build:renderer && npm run build:extension",
138+
"build:renderer": "webpack --config=./webpack.config.js --mode=production",
139+
"build:extension": "webpack --config=./webpack.extension.config.js --mode=production",
137140
"lint": "eslint src --ext ts",
138141
"watch": "concurrently -r \"npm:watch:*\"",
139-
"watch:extension": "tsc -b --watch",
142+
"watch:extension": "tsc -watch -p ./",
140143
"watch:renderer": "webpack --mode development --watch",
141144
"dev": "concurrently -r npm:watch:extension npm:watch:renderer",
142145
"pretest": "npm run compile && npm run lint",
143-
"test": "node ./out/test/runTest.js"
146+
"test": "node ./out/test/runTest.js",
147+
"test:web": "npx @vscode/test-web --extensionDevelopmentPath=. --extensionPath=."
144148
},
145149
"devDependencies": {
146150
"@babel/core": "^7.13.10",

src/tsconfig-base.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
"types": ["node"],
99
"moduleResolution": "node",
1010
"sourceMap": true,
11-
"strict": true /* enable all strict type-checking options */
11+
"strict": true /* enable all strict type-checking options */,
12+
"experimentalDecorators": true,
13+
"allowSyntheticDefaultImports": true,
1214
/* Additional Checks */
1315
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
1416
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */

webpack.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ module.exports = (env, argv) => ({
2121
extensions: ['.ts', '.tsx', '.js', '.jsx', '.css'],
2222
},
2323
experiments: {
24-
outputModule: true,
24+
outputModule: true,
2525
},
2626
module: {
2727
rules: [

webpack.extension.config.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
const path = require('path');
2+
const configFileName = 'src/extension/tsconfig.json';
3+
4+
module.exports = {
5+
// context: path.dirname(__dirname),
6+
target: 'node',
7+
entry: {
8+
extension: './src/extension/extension.ts'
9+
},
10+
output: {
11+
filename: 'extension.js',
12+
path: path.join(__dirname, 'out', 'extension'),
13+
libraryTarget: 'commonjs2'
14+
},
15+
mode: 'production',
16+
devtool: 'source-map',
17+
externals: ['vscode', 'commonjs'],
18+
resolve: {
19+
extensions: ['.ts', '.js']
20+
},
21+
node: {
22+
__dirname: false
23+
},
24+
module: {
25+
rules: [
26+
{
27+
test: /\.ts$/,
28+
exclude: /node_modules/,
29+
use: [
30+
{
31+
loader: 'ts-loader',
32+
options: {
33+
configFile: configFileName,
34+
reportFiles: ['src/extension/**/*.{ts,tsx}']
35+
}
36+
}
37+
]
38+
}
39+
]
40+
}
41+
};

0 commit comments

Comments
 (0)