@@ -46,11 +46,76 @@ Angular2App.prototype.toTree = function () {
46
46
buildTrees . push ( tsSrcTree ) ;
47
47
}
48
48
49
+ var tsconfig = JSON . parse ( fs . readFileSync ( 'src/tsconfig.json' , 'utf-8' ) ) ;
50
+ // Add all spec files to files. We need this because spec files are their own entry
51
+ // point.
52
+ fs . readdirSync ( sourceDir ) . forEach ( function addPathRecursive ( name ) {
53
+ const filePath = path . join ( sourceDir , name ) ;
54
+ if ( filePath . match ( / \. s p e c \. [ j t ] s $ / ) ) {
55
+ tsconfig . files . push ( name ) ;
56
+ } else if ( fs . statSync ( filePath ) . isDirectory ( ) ) {
57
+ // Recursively call this function with the full sub-path.
58
+ fs . readdirSync ( filePath ) . forEach ( function ( n ) {
59
+ addPathRecursive ( path . join ( name , n ) ) ;
60
+ } ) ;
61
+ }
62
+ } ) ;
63
+
64
+ // Because the tsconfig does not include the source directory, add this as the first path
65
+ // element.
66
+ tsconfig . files = tsconfig . files . map ( name => path . join ( sourceDir , name ) ) ;
67
+
68
+ var srcAndTypingsTree = mergeTrees ( [ sourceTree , typingsTree ] ) ;
69
+ var tsTree = new compileWithTypescript ( srcAndTypingsTree , tsconfig ) ;
70
+
71
+ tsTree = new Funnel ( tsTree , {
72
+ srcDir : 'src' ,
73
+ exclude : [ '*.d.ts' , 'tsconfig.json' ]
74
+ } ) ;
75
+
76
+ var jsTree = new Funnel ( sourceDir , {
77
+ include : [ '**/*.js' ] ,
78
+ allowEmpty : true
79
+ } ) ;
80
+
81
+ var assetTree = new Funnel ( sourceDir , {
82
+ include : [ '**/*.*' ] ,
83
+ exclude : [
84
+ '**/*.ts' ,
85
+ '**/*.js' ,
86
+ '**/*.scss' ,
87
+ '**/*.sass' ,
88
+ '**/*.less' ,
89
+ '**/*.styl'
90
+ ] ,
91
+ allowEmpty : true
92
+ } ) ;
93
+
94
+ var vendorNpmTree = new Funnel ( 'node_modules' , {
95
+ include : vendorNpmFiles ,
96
+ destDir : 'vendor'
97
+ } ) ;
98
+
99
+ var allTrees = [
100
+ assetTree ,
101
+ tsTree ,
102
+ jsTree ,
103
+ this . index ( ) ,
104
+ vendorNpmTree
105
+ ] ;
106
+
49
107
if ( fs . existsSync ( 'public' ) ) {
50
108
buildTrees . push ( excludeDotfilesTree ) ;
51
109
}
52
110
53
- var merged = mergeTrees ( buildTrees , { overwrite : true } ) ;
111
+ allTrees = allTrees . concat (
112
+ require ( './angular-broccoli-sass' ) . makeBroccoliTree ( sourceDir ) ,
113
+ require ( './angular-broccoli-less' ) . makeBroccoliTree ( sourceDir ) ,
114
+ require ( './angular-broccoli-stylus' ) . makeBroccoliTree ( sourceDir ) ,
115
+ require ( './angular-broccoli-compass' ) . makeBroccoliTree ( sourceDir )
116
+ ) . filter ( x => ! ! x ) ;
117
+
118
+ var merged = mergeTrees ( allTrees , { overwrite : true } ) ;
54
119
55
120
return mergeTrees ( [ merged , new SwManifest ( [ merged ] ) ] ) ;
56
121
} ;
0 commit comments