@@ -20,18 +20,21 @@ function prepPackage(pkgName) {
2020 if ( ! pkgName ) usage ( ) ;
2121
2222 let paths = { } ;
23+ let files = { bin : { } } ;
24+
2325 paths . script = __filename ;
2426 paths . scriptdir = __dirname ;
25- paths . basedir = path . resolve ( paths . scriptdir , '..' ) ;
26- paths . pkgsrc = path . resolve ( paths . basedir , 'packages' , pkgName ) ;
27- paths . build = path . resolve ( paths . basedir , `build_packages/${ pkgName } ` ) ;
28-
29- let files = { } ;
30- files . sources = path . resolve ( paths . pkgsrc , "sources.json" ) ;
31- files . pkgfile = path . resolve ( paths . pkgsrc , "package.json" ) ;
32- files . bowerfile = path . resolve ( paths . pkgsrc , "bower.json" ) ;
33- files . tsconfig = path . resolve ( paths . pkgsrc , "tsconfig.json" ) ;
34- files . webpack = path . resolve ( paths . pkgsrc , "webpack.config.js" ) ;
27+ paths . basedir = path . resolve ( paths . scriptdir , '..' ) ;
28+ paths . pkgsrc = path . resolve ( paths . basedir , 'packages' , pkgName ) ;
29+ paths . build = path . resolve ( paths . basedir , `build_packages/${ pkgName } ` ) ;
30+
31+ files . sources = path . resolve ( paths . pkgsrc , "sources.json" ) ;
32+ files . pkgfile = path . resolve ( paths . pkgsrc , "package.json" ) ;
33+ files . bowerfile = path . resolve ( paths . pkgsrc , "bower.json" ) ;
34+ files . tsconfig = path . resolve ( paths . pkgsrc , "tsconfig.json" ) ;
35+ files . webpack = path . resolve ( paths . pkgsrc , "webpack.config.js" ) ;
36+ files . bin . webpack = path . resolve ( paths . basedir , "node_modules/webpack/bin/webpack.js" ) ;
37+ files . bin . tsc = path . resolve ( paths . basedir , "node_modules/typescript/bin/tsc" ) ;
3538
3639 // Check for some paths and files required to build a package
3740 assertDir ( paths . pkgsrc ) ;
@@ -107,22 +110,22 @@ function prepPackage(pkgName) {
107110
108111 // Merge the root tsconfig.json with the tsconfig property of package.config.js
109112 // Write the merged tsconfig.json to the copied source files dir
110- let baseTsConfigJson = require ( '../tsconfig.json' ) ;
111- delete baseTsConfigJson . files ;
112- let tsconfigJson = _ . merge ( { } , baseTsConfigJson , JSON . parse ( fs . readFileSync ( files . tsconfig ) ) ) ;
113- fs . writeFileSync ( path . resolve ( paths . srcCopy , 'tsconfig.json' ) , asJson ( tsconfigJson ) ) ;
113+ let tsconfig = Object . assign ( { } , require ( '../tsconfig.json' ) ) ;
114+ let overrides = JSON . parse ( fs . readFileSync ( files . tsconfig ) ) ;
115+ [ 'compilerOptions' ] . forEach ( key => {
116+ Object . assign ( tsconfig [ key ] , overrides [ key ] ) ;
117+ delete overrides [ key ]
118+ } ) ;
119+ Object . assign ( tsconfig , overrides ) ;
114120
115- echo ( '--> Linking node_modules and typings...' ) ;
116- // In case the source needs typings and node_modules to compile, symlink them
117- ln ( '-sf' , `${ paths . basedir } /typings` , `${ paths . build } /typings` ) ;
118- ln ( '-sf' , `${ paths . basedir } /node_modules` , `${ paths . srcCopy } /node_modules` ) ;
121+ fs . writeFileSync ( path . resolve ( paths . srcCopy , 'tsconfig.json' ) , asJson ( tsconfig ) ) ;
119122
120123 echo ( '--> Building webpack bundles...' ) ;
121124 cd ( paths . srcCopy ) ;
122- exec ( `node ./node_modules/webpack/ bin/webpack.js ` ) ;
125+ exec ( `node ${ files . bin . webpack } ` ) ;
123126
124127 echo ( '--> Building commonjs and typings using tsc...' ) ;
125- exec ( `node ./node_modules/typescript/ bin/ tsc` ) ;
128+ exec ( `node ${ files . bin . tsc } ` ) ;
126129
127130 echo ( '<-- done!' ) ;
128131}
0 commit comments