11'use strict' ;
22
3- const path = require ( 'path' ) ;
43const merge = require ( 'merge-options' ) ;
54
6- module . exports = function withDefaults ( extConfig ) {
7- let defaultConfig = {
8- mode : 'none' , // this leaves the source code as close as possible to the original (when packaging we set this to 'production')
9- target : 'node' , // extensions run in a node context
10- node : {
11- __dirname : false // leave the __dirname-behaviour intact
12- } ,
13- resolve : {
14- mainFields : [ 'module' , 'main' ] ,
15- extensions : [ '.ts' , '.js' ] // support ts-files and js-files
16- } ,
5+ module . exports = function extendBaseConfig ( subConfig ) {
6+ let baseConfig = {
7+ mode : 'none' , // The npm task `compile` overrides this to 'production' mode via webpack-cli
8+ target : 'node' ,
9+ resolve : { extensions : [ '.ts' , '.js' ] } ,
1710 module : {
1811 rules : [ {
1912 test : / \. t s $ / ,
2013 exclude : / n o d e _ m o d u l e s / ,
2114 use : [ {
22- // configure TypeScript loader:
23- // * enable sources maps for end-to-end source maps
2415 loader : 'ts-loader' ,
2516 options : {
26- compilerOptions : {
27- "sourceMap" : true ,
28- }
17+ compilerOptions : { sourceMap : true } // Maps are excluded from the extension bundle
2918 }
3019 } ]
3120 } ]
3221 } ,
33- externals : {
34- 'vscode' : 'commonjs vscode' , // ignored because it doesn't exist
35- } ,
22+ externals : { vscode : 'commonjs vscode' } ,
3623 output : {
37- // all output goes into `dist`.
38- // packaging depends on that and this must always be like it
39- filename : '[name].js' ,
40- path : path . join ( extConfig . context , 'out' ) ,
41- libraryTarget : "commonjs" ,
24+ libraryTarget : 'commonjs' ,
25+ devtoolModuleFilenameTemplate : 'file:///[absolute-resource-path]'
4226 } ,
43- // yes, really source maps
4427 devtool : 'source-map'
4528 } ;
4629
47- return merge ( defaultConfig , extConfig ) ;
48- } ;
30+ return merge ( baseConfig , subConfig ) ;
31+ } ;
0 commit comments