-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
ember-cli-build.js
89 lines (86 loc) · 2.34 KB
/
ember-cli-build.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
86
87
88
89
'use strict';
const crypto = require('crypto');
const randomString = require('randomstring').generate();
const git = require('git-rev-sync');
const GlimmerApp = require('@glimmer/application-pipeline').GlimmerApp;
const prod = process.env.EMBER_ENV === 'production';
const customHash = crypto.createHash('md5').update(randomString).digest('hex');
// get last commit short hash
const version = git.short();
module.exports = function(defaults) {
let app = new GlimmerApp(defaults, {
fingerprint: {
enabled: prod,
exclude: ['icon'],
//generateAssetMap: prod,
//fingerprintAssetMap: prod,
customHash,
},
addons: {
blacklist: prod ? [] : ['ember-service-worker'],
},
'esw-index': {
location: 'index.html',
// Bypass esw-index and don't serve cached index file for matching URLs
excludeScope: [/\/localhost(\/.*)?$/],
version,
},
'asset-cache': {
include: [
'assets/**/*',
'**/*',
'sw-registration.js',
],
exclude: [
'**/*.txt',
'**/*.css',
'test.json',
'sw.js',
],
version,
requestMode: 'cors',
},
'esw-cache-fallback': {
patterns: [
'https://node-hnapi.herokuapp.com/(.+)',
],
version,
},
minifyJS: {
enabled: prod,
options: {
mangle: true,
//reserved: 'didDestroy',
},
},
minifyCSS: {
enabled: prod,
},
inlineContent: {
'critical-css': 'src/ui/styles/app.css',
},
minifyHTML: {
enabled: prod,
htmlFiles: ['index.html'],
minifierOptions: {
collapseWhitespace: true,
removeComments: true,
minifyJS: true,
minifyCSS: true,
},
},
});
// Use `app.import` to add additional libraries to the generated
// output files.
//
// If you need to use different assets in different
// environments, specify an object as the first parameter. That
// object's keys should be the environment name and the values
// should be the asset to use in that environment.
//
// If the library that you are including contains AMD or ES6
// modules that you would like to import into your application
// please specify an object with the list of modules as keys
// along with the exports of each module as its value.
return app.toTree();
};