Skip to content

Commit

Permalink
[BUGFIX release] Ensure loader.js is transpiled via `targets… (#18582)
Browse files Browse the repository at this point in the history
[BUGFIX release] Ensure `loader.js` is transpiled via `targets`.
  • Loading branch information
rwjblue committed Dec 3, 2019
2 parents b445677 + 60b8dee commit a0f4034
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 68 deletions.
151 changes: 87 additions & 64 deletions ember-cli-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const testIndexHTML = require('./broccoli/test-index-html');
const testPolyfills = require('./broccoli/test-polyfills');
const rollupPackage = require('./broccoli/rollup-package');
const minify = require('./broccoli/minify');
const debugTree = require('broccoli-debug').buildDebugCallback('ember-source:ember-cli-build');

const {
routerES,
Expand Down Expand Up @@ -63,74 +64,93 @@ module.exports = function({ project }) {
let transpileTree = withTargets(project, emberSource.transpileTree.bind(emberSource));
let emberBundles = withTargets(project, emberSource.buildEmberBundles.bind(emberSource));

let packages = new MergeTrees([
// dynamically generated packages
emberVersionES(),
let packages = debugTree(
new MergeTrees([
// dynamically generated packages
emberVersionES(),

// packages/** (after typescript compilation)
getPackagesES(),
// packages/** (after typescript compilation)
getPackagesES(),

// externalized helpers
babelHelpers(),
]);
// externalized helpers
babelHelpers(),
]),
'packages:initial'
);

// Rollup
if (SHOULD_ROLLUP) {
packages = new MergeTrees([
packages = debugTree(
new MergeTrees([
new Funnel(packages, {
exclude: [
'@ember/-internals/browser-environment/index.js',
'@ember/-internals/browser-environment/lib/**',
'@ember/-internals/container/index.js',
'@ember/-internals/container/lib/**',
'@ember/-internals/environment/index.js',
'@ember/-internals/environment/lib/**',
'@ember/-internals/glimmer/index.js',
'@ember/-internals/glimmer/lib/**',
'@ember/-internals/metal/index.js',
'@ember/-internals/metal/lib/**',
'@ember/-internals/utils/index.js',
'@ember/-internals/utils/lib/**',
],
}),
rollupPackage(packages, '@ember/-internals/browser-environment'),
rollupPackage(packages, '@ember/-internals/environment'),
rollupPackage(packages, '@ember/-internals/glimmer'),
rollupPackage(packages, '@ember/-internals/metal'),
rollupPackage(packages, '@ember/-internals/utils'),
rollupPackage(packages, '@ember/-internals/container'),
]),
'packages:rollup'
);
}

let dist = debugTree(
new MergeTrees([
new Funnel(packages, {
destDir: 'packages',
exclude: [
'@ember/-internals/browser-environment/index.js',
'@ember/-internals/browser-environment/lib/**',
'@ember/-internals/container/index.js',
'@ember/-internals/container/lib/**',
'@ember/-internals/environment/index.js',
'@ember/-internals/environment/lib/**',
'@ember/-internals/glimmer/index.js',
'@ember/-internals/glimmer/lib/**',
'@ember/-internals/metal/index.js',
'@ember/-internals/metal/lib/**',
'@ember/-internals/utils/index.js',
'@ember/-internals/utils/lib/**',
'**/package.json',
'@ember/-internals/*/tests/**' /* internal packages */,
'*/*/tests/**' /* scoped packages */,
'*/tests/**' /* packages */,
'ember-template-compiler/**',
'internal-test-helpers/**',
],
}),
rollupPackage(packages, '@ember/-internals/browser-environment'),
rollupPackage(packages, '@ember/-internals/environment'),
rollupPackage(packages, '@ember/-internals/glimmer'),
rollupPackage(packages, '@ember/-internals/metal'),
rollupPackage(packages, '@ember/-internals/utils'),
rollupPackage(packages, '@ember/-internals/container'),
]);
}

let dist = new MergeTrees([
new Funnel(packages, {
destDir: 'packages',
exclude: [
'**/package.json',
'@ember/-internals/*/tests/**' /* internal packages */,
'*/*/tests/**' /* scoped packages */,
'*/tests/**' /* packages */,
'ember-template-compiler/**',
'internal-test-helpers/**',
],
}),
new Funnel(emberHeaderFiles(), { destDir: 'header' }),
new Funnel(emberDependencies(ENV), { destDir: 'dependencies' }),
]);
new Funnel(emberHeaderFiles(), { destDir: 'header' }),
new Funnel(emberDependencies(ENV), { destDir: 'dependencies' }),
]),
'dist'
);

// Test builds, tests, and test harness
let testFiles = new Funnel(
new MergeTrees([emberBundles(dist), testsBundle(packages, ENV, transpileTree), testHarness()]),
{
destDir: 'tests',
}
let testFiles = debugTree(
new Funnel(
new MergeTrees([
emberBundles(dist),
testsBundle(packages, ENV, transpileTree),
testHarness(),
]),
{
destDir: 'tests',
}
),
'testFiles'
);

let preBuilt = new Funnel(emberBundles(dist, false, { targets: modernBrowsers, loose: false }), {
getDestinationPath(path) {
return path.replace('ember.', 'ember.debug.');
},
});
let preBuilt = debugTree(
new Funnel(emberBundles(dist, false, { targets: modernBrowsers, loose: false }), {
getDestinationPath(path) {
return path.replace('ember.', 'ember.debug.');
},
}),
'preBuilt'
);

if (SHOULD_MINIFY) {
preBuilt = minify(preBuilt);
Expand All @@ -142,22 +162,25 @@ module.exports = function({ project }) {

// Pre-built bundles
preBuilt,
templateCompilerBundle(packages, transpileTree),
debugTree(templateCompilerBundle(packages, transpileTree), 'template-compiler'),

testFiles,
]);
};

function emberDependencies(environment) {
// generate "loose" ES<latest> modules...
return new MergeTrees([
backburnerES(),
rsvpES(),
dagES(),
routerES(),
routeRecognizerES(),
glimmerES(environment),
]);
return debugTree(
new MergeTrees([
backburnerES(),
rsvpES(),
dagES(),
routerES(),
routeRecognizerES(),
glimmerES(environment),
]),
'dependencies'
);
}

function testsBundle(emberPackages, env, transpileTree) {
Expand Down
18 changes: 15 additions & 3 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const concatBundle = require('./concat-bundle');
const buildDebugMacroPlugin = require('./build-debug-macro-plugin');
const buildStripClassCallcheckPlugin = require('./build-strip-class-callcheck-plugin');
const injectBabelHelpers = require('./transforms/inject-babel-helpers');
const debugTree = require('broccoli-debug').buildDebugCallback('ember-source:addon');

const PRE_BUILT_TARGETS = [
'last 1 Chrome versions',
Expand Down Expand Up @@ -127,7 +128,7 @@ module.exports = {
}
},

transpileTree(tree, isProduction) {
transpileTree(tree, isProduction, shouldCompileModules) {
let emberCliBabel = this.addons.find(a => a.name === 'ember-cli-babel');

let parentOptions = this.parent && this.parent.options;
Expand Down Expand Up @@ -157,6 +158,13 @@ module.exports = {
}),
};

if (shouldCompileModules !== undefined) {
// ember-cli-babel internally uses **any** value that was provided IIF
// the option is set so this option must only be set when we have a
// useful value for it
options['ember-cli-babel'].compileModules = shouldCompileModules;
}

if (isProduction) {
options.babel.plugins.push(buildStripClassCallcheckPlugin());
}
Expand All @@ -172,7 +180,11 @@ module.exports = {
isProduction
);

let headerFiles = new Funnel(tree, { srcDir: 'header' });
let headerFiles = this.transpileTree(
new Funnel(tree, { srcDir: 'header' }),
isProduction,
false
);

let exclude = isProduction ? ['ember-testing/**'] : [];

Expand Down Expand Up @@ -253,6 +265,6 @@ module.exports = {
});
}

return new MergeTrees([ember, templateCompiler, jquery]);
return debugTree(new MergeTrees([ember, templateCompiler, jquery]), 'vendor:final');
},
};
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
"babel-plugin-debug-macros": "^0.3.3",
"babel-plugin-filter-imports": "^3.0.0",
"broccoli-concat": "^3.7.4",
"broccoli-debug": "^0.6.4",
"broccoli-funnel": "^2.0.2",
"broccoli-merge-trees": "^3.0.2",
"chalk": "^2.4.2",
Expand Down Expand Up @@ -91,7 +92,6 @@
"babel-template": "^6.26.0",
"backburner.js": "^2.6.0",
"broccoli-babel-transpiler": "^7.3.0",
"broccoli-debug": "^0.6.4",
"broccoli-file-creator": "^2.1.1",
"broccoli-persistent-filter": "^2.3.1",
"broccoli-plugin": "^3.0.0",
Expand Down

0 comments on commit a0f4034

Please sign in to comment.