-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBrocfile.js
85 lines (73 loc) · 2.07 KB
/
Brocfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
module.exports = function (broccoli) {
var filterCoffeeScript = require('broccoli-coffee')
var filterTemplates = require('broccoli-template')
var uglifyJavaScript = require('broccoli-uglify-js')
var compileES6 = require('broccoli-es6-concatenator')
var compileSass = require('broccoli-sass')
var pickFiles = require('broccoli-static-compiler')
var env = require('broccoli-env').getEnv()
function preprocess (tree) {
tree = filterTemplates(tree, {
extensions: ['hbs', 'handlebars'],
compileFunction: 'Ember.Handlebars.compile'
})
tree = filterCoffeeScript(tree, {
bare: true
})
return tree
}
var app = broccoli.makeTree('app')
app = pickFiles(app, {
srcDir: '/',
destDir: 'appkit' // move under appkit namespace
})
app = preprocess(app)
var styles = broccoli.makeTree('styles')
styles = pickFiles(styles, {
srcDir: '/',
destDir: 'appkit'
})
styles = preprocess(styles)
var tests = broccoli.makeTree('tests')
tests = pickFiles(tests, {
srcDir: '/',
destDir: 'appkit/tests'
})
tests = preprocess(tests)
var vendor = broccoli.makeTree('vendor')
var sourceTrees = [app, styles, vendor]
if (env !== 'production') {
sourceTrees.push(tests)
}
sourceTrees = sourceTrees.concat(broccoli.bowerTrees())
var appAndDependencies = new broccoli.MergedTree(sourceTrees)
var appJs = compileES6(appAndDependencies, {
loaderFile: 'loader.js',
ignoredModules: [
'ember/resolver'
],
inputFiles: [
'appkit/**/*.js'
],
legacyFilesToAppend: [
'jquery.js',
'handlebars.js',
'ember.js',
'ember-data.js',
'ember-resolver.js',
'leaflet.js',
'bootstrap.js'
],
wrapInEval: env !== 'production',
outputFile: '/assets/app.js'
})
var appCss = compileSass(sourceTrees, 'appkit/app.scss', 'assets/app.css')
if (env === 'production') {
appJs = uglifyJavaScript(appJs, {
// mangle: false,
// compress: false
})
}
var publicFiles = broccoli.makeTree('public')
return [appJs, appCss, publicFiles]
}