forked from rust-lang/crates.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ember-cli-build.js
99 lines (88 loc) · 2.46 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
90
91
92
93
94
95
96
97
98
99
'use strict';
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
module.exports = function (defaults) {
let env = EmberApp.env();
let isProd = env === 'production';
let browsers = require('./config/targets').browsers;
let app = new EmberApp(defaults, {
'@embroider/macros': {
setConfig: {
'@ember-data/store': {
polyfillUUID: true,
},
},
},
autoImport: {
webpack: {
devtool: isProd ? 'source-map' : 'eval-source-map',
externals: {
// prevent Chart.js from bundling Moment.js
moment: 'moment',
},
},
},
babel: {
plugins: [
require.resolve('ember-auto-import/babel-plugin'),
require.resolve('ember-concurrency/async-arrow-task-transform'),
...require('ember-cli-code-coverage').buildBabelPlugin({ embroider: true }),
],
},
'ember-cli-babel': {
throwUnlessParallelizable: true,
},
'ember-fetch': {
preferNative: true,
},
cssModules: {
extension: 'module.css',
plugins: {
postprocess: [require('postcss-preset-env')({ browsers, preserve: false })],
},
},
fingerprint: {
extensions: ['js', 'css', 'png', 'jpg', 'gif', 'map', 'svg', 'ttf', 'woff', 'woff2'],
},
sourcemaps: {
enabled: true,
extensions: ['js'],
},
});
app.import('node_modules/normalize.css/normalize.css', { prepend: true });
app.import('vendor/qunit.css', { type: 'test' });
const { Webpack } = require('@embroider/webpack');
return require('@embroider/compat').compatBuild(app, Webpack, {
staticAddonTrees: true,
staticAddonTestSupportTrees: true,
staticModifiers: true,
packagerOptions: {
webpackConfig: {
resolve: {
fallback: {
// disables `crypto` import warning in `axe-core`
crypto: false,
// disables `timers` import warning in `@sinon/fake-timers`
timers: false,
},
},
},
},
packageRules: [
// see https://github.com/embroider-build/embroider/issues/1322
{
package: '@ember-data/store',
addonModules: {
'-private.js': {
dependsOnModules: [],
},
'-private/system/core-store.js': {
dependsOnModules: [],
},
'-private/system/model/internal-model.js': {
dependsOnModules: [],
},
},
},
],
});
};