@@ -9,6 +9,8 @@ module.exports = function(defaults) {
99 const path = require ( 'path' ) ;
1010 const fs = require ( 'fs' ) ;
1111 const babelOpts = require ( './lib/babel-opts' ) ;
12+ const buildQUnitTree = require ( './lib/build-qunit-tree' ) ;
13+ const buildTwiddleVendorTree = require ( './lib/build-twiddle-ember-tree' ) ;
1214
1315 const env = EmberApp . env ( ) ;
1416 const deployTarget = process . env . DEPLOY_TARGET ;
@@ -28,6 +30,9 @@ module.exports = function(defaults) {
2830 const blueprintsCode = require ( './lib/get-ember-cli-blueprints' ) ( ) ;
2931
3032 let app = new EmberApp ( defaults , {
33+ vendorFiles : {
34+ 'ember-testing.js' : null
35+ } ,
3136 SRI : {
3237 runsIn : "production"
3338 } ,
@@ -37,6 +42,21 @@ module.exports = function(defaults) {
3742 extensions : [ 'js' , 'css' , 'png' , 'jpg' , 'gif' , 'map' , 'svg' , 'eot' , 'ttf' , 'woff' , 'woff2' , 'ico' ] ,
3843 exclude : [ ]
3944 } ,
45+ sourcemaps : {
46+ enabled : ! isProductionLikeBuild
47+ } ,
48+ minifyCSS : {
49+ enabled : isProductionLikeBuild
50+ } ,
51+ minifyJS : {
52+ enabled : isProductionLikeBuild ,
53+ options : {
54+ // Fix for minification bug with Uglify & Babel: Babel depends on constructor.name === "Plugin"
55+ mangle : {
56+ except : [ 'Plugin' ]
57+ }
58+ }
59+ } ,
4060 codemirror : {
4161 modes : [ 'xml' , 'javascript' , 'handlebars' , 'htmlmixed' , 'css' ] ,
4262 keyMaps : [ 'emacs' , 'sublime' , 'vim' ] ,
@@ -62,21 +82,6 @@ module.exports = function(defaults) {
6282 import : [ 'babel-preset-env.js' ]
6383 }
6484 } ,
65- sourcemaps : {
66- enabled : ! isProductionLikeBuild
67- } ,
68- minifyCSS : {
69- enabled : isProductionLikeBuild
70- } ,
71- minifyJS : {
72- enabled : isProductionLikeBuild ,
73- options : {
74- // Fix for minification bug with Uglify & Babel: Babel depends on constructor.name === "Plugin"
75- mangle : {
76- except : [ 'Plugin' ]
77- }
78- }
79- } ,
8085 'ember-cli-babel' : {
8186 includePolyfill : ! isFastboot
8287 } ,
@@ -95,6 +100,10 @@ module.exports = function(defaults) {
95100 }
96101
97102 app . import ( 'vendor/ember/ember-template-compiler.js' ) ;
103+ app . import ( 'vendor/ember/ember-testing.js' , {
104+ type : 'vendor' ,
105+ outputFile : 'ember-testing.js'
106+ } ) ;
98107 app . import ( 'vendor/shims/babel.js' ) ;
99108 app . import ( 'vendor/shims/path.js' ) ;
100109 app . import ( 'bower_components/file-saver/FileSaver.js' ) ;
@@ -135,98 +144,12 @@ module.exports = function(defaults) {
135144
136145 let twiddleVendorTree = buildTwiddleVendorTree ( ) ;
137146
138- return app . toTree ( mergeTrees ( [ twiddleVendorTree , loaderTree , testLoaderTree , finalQUnitTree ] ) ) ;
147+ return app . toTree ( mergeTrees ( [
148+ twiddleVendorTree ,
149+ loaderTree ,
150+ testLoaderTree ,
151+ finalQUnitTree
152+ ] ) ) ;
139153} ;
140154
141- function buildQUnitTree ( app ) {
142- const funnel = require ( 'broccoli-funnel' ) ;
143- const concat = require ( 'broccoli-concat' ) ;
144- const mergeTrees = require ( 'broccoli-merge-trees' ) ;
145- const babelTranspiler = require ( 'broccoli-babel-transpiler' ) ;
146- const Rollup = require ( 'broccoli-rollup' ) ;
147- const path = require ( 'path' ) ;
148- const babelOpts = require ( './lib/babel-opts' ) ;
149-
150- let preprocessJs = app . registry . registry . js [ 0 ] . toTree ;
151-
152- let buildPreprocessedAddon = function ( addonName ) {
153- return preprocessJs ( path . dirname ( require . resolve ( addonName ) ) + '/addon-test-support' , {
154- registry : app . registry
155- } ) ;
156- } ;
157-
158- let qunitTree = buildPreprocessedAddon ( 'ember-qunit' ) ;
159- let testHelpersTreeForQUnit = buildPreprocessedAddon ( '@ember/test-helpers' ) ;
160-
161- let testLoaderTreeForQUnit = funnel ( "node_modules/ember-cli-test-loader/addon-test-support" , {
162- files : [ 'index.js' ] ,
163- getDestinationPath : function ( ) {
164- return "ember-cli-test-loader/test-support/index.js" ;
165- }
166- } ) ;
167-
168- testLoaderTreeForQUnit = new Rollup ( testLoaderTreeForQUnit , {
169- rollup : {
170- input : 'ember-cli-test-loader/test-support/index.js' ,
171- output : {
172- file : 'ember-cli-test-loader/test-support/index.js' ,
173- format : 'es'
174- } ,
175- plugins : [
176- require ( 'rollup-plugin-commonjs' ) ( )
177- ]
178- }
179- } ) ;
180-
181- testLoaderTreeForQUnit = babelTranspiler ( testLoaderTreeForQUnit , babelOpts ( ) ) ;
182-
183- let finalQUnitTree = concat ( mergeTrees ( [ qunitTree , testHelpersTreeForQUnit , testLoaderTreeForQUnit ] ) , {
184- inputFiles : [ '**/*.js' ] ,
185- outputFile : '/assets/ember-qunit.js'
186- } ) ;
187-
188- return finalQUnitTree ;
189- }
190-
191- function buildTwiddleVendorTree ( ) {
192- const funnel = require ( 'broccoli-funnel' ) ;
193- const concat = require ( 'broccoli-concat' ) ;
194- const mergeTrees = require ( 'broccoli-merge-trees' ) ;
195- const babelTranspiler = require ( 'broccoli-babel-transpiler' ) ;
196- const babelOpts = require ( './lib/babel-opts' ) ;
197-
198- let emberDataShims = funnel ( 'vendor' , {
199- files : [ 'ember-data-shims.js' ]
200- } ) ;
201-
202- let bowerTree = funnel ( 'bower_components' ) ;
203- let shimsTree = funnel ( 'node_modules/ember-cli-shims/vendor/ember-cli-shims' , {
204- destDir : 'ember-cli-shims'
205- } ) ;
206-
207- let baseResolverTree = funnel ( 'node_modules/ember-resolver/addon' , {
208- destDir : 'ember-resolver'
209- } ) ;
210-
211- let transpiledResolverTree = babelTranspiler ( baseResolverTree , babelOpts ( ) ) ;
212-
213- let baseInitializersTree = funnel ( 'node_modules/ember-load-initializers/addon' , {
214- destDir : 'ember-load-initializers'
215- } ) ;
216-
217- let transpiledInitializersTree = babelTranspiler ( baseInitializersTree , babelOpts ( ) ) ;
218-
219- let mergedDepsTree = mergeTrees ( [ bowerTree , shimsTree , transpiledInitializersTree , transpiledResolverTree , emberDataShims ] ) ;
220-
221- let twiddleVendorTree = concat ( mergedDepsTree , {
222- inputFiles : [
223- 'ember-cli-shims/app-shims.js' ,
224- 'ember-load-initializers/**/*.js' ,
225- 'ember-resolver/**/*.js' ,
226- 'ember-data-shims.js'
227- ] ,
228- outputFile : '/assets/twiddle-deps.js'
229- } ) ;
230155
231- return twiddleVendorTree ;
232- }
0 commit comments