Skip to content

Commit d2f2404

Browse files
committed
chore: add css preprocessor trees
1 parent 12a6741 commit d2f2404

File tree

1 file changed

+66
-1
lines changed

1 file changed

+66
-1
lines changed

lib/broccoli/angular2-app.js

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,76 @@ Angular2App.prototype.toTree = function () {
4646
buildTrees.push(tsSrcTree);
4747
}
4848

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(/\.spec\.[jt]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+
49107
if (fs.existsSync('public')) {
50108
buildTrees.push(excludeDotfilesTree);
51109
}
52110

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 });
54119

55120
return mergeTrees([merged, new SwManifest([merged])]);
56121
};

0 commit comments

Comments
 (0)