From 37700e33467cdeb33054d2d0cad1097adf0782ff Mon Sep 17 00:00:00 2001 From: Xiaoyi Shi Date: Thu, 6 Dec 2018 11:44:44 +0800 Subject: [PATCH 1/5] update --- internal/rollup/rollup.config.js | 7 +++++-- internal/rollup/rollup_bundle.bzl | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/rollup/rollup.config.js b/internal/rollup/rollup.config.js index 69bd3f3575..d4da6d9ba7 100644 --- a/internal/rollup/rollup.config.js +++ b/internal/rollup/rollup.config.js @@ -156,11 +156,14 @@ const enableCodeSplitting = inputs.length > 1; const config = { resolveBazel, banner, - onwarn: (warning) => { + onwarn: ({loc, frame, message}) => { // Always fail on warnings, assuming we don't know which are harmless. // We can add exclusions here based on warning.code, if we discover some // types of warning should always be ignored under bazel. - throw new Error(warning.message); + if (loc) { + throw new Error(`${loc.file} (${loc.line}:${loc.column}) ${message}`); + } + throw new Error(message); }, plugins: [TMPL_additional_plugins].concat([ {resolveId: resolveBazel}, diff --git a/internal/rollup/rollup_bundle.bzl b/internal/rollup/rollup_bundle.bzl index 99174bb218..ef915ee6d3 100644 --- a/internal/rollup/rollup_bundle.bzl +++ b/internal/rollup/rollup_bundle.bzl @@ -169,7 +169,10 @@ def _run_rollup(ctx, sources, config, output, map_output = None): # We will produce errors as needed. Anything else is spammy: a well-behaved # bazel rule prints nothing on success. - args.add("--silent") + # + # TODO(https://github.com/rollup/rollup/issues/2582): Uncomment the following + # line once rollup stops reporting build errors with onwarn. + # args.add("--silent") if ctx.attr.globals: args.add("--external") From 485a268261abacd4d348f5f8334c716f525785e9 Mon Sep 17 00:00:00 2001 From: Xiaoyi Shi Date: Thu, 6 Dec 2018 11:56:35 +0800 Subject: [PATCH 2/5] fix build --- internal/rollup/rollup.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/rollup/rollup.config.js b/internal/rollup/rollup.config.js index d4da6d9ba7..065565616d 100644 --- a/internal/rollup/rollup.config.js +++ b/internal/rollup/rollup.config.js @@ -154,8 +154,6 @@ const inputs = [TMPL_inputs]; const enableCodeSplitting = inputs.length > 1; const config = { - resolveBazel, - banner, onwarn: ({loc, frame, message}) => { // Always fail on warnings, assuming we don't know which are harmless. // We can add exclusions here based on warning.code, if we discover some @@ -193,4 +191,6 @@ else { }; } +config.output.banner = banner; + module.exports = config; From 6e4370180c1c210fef6a63b8b4c2a14d10f243bc Mon Sep 17 00:00:00 2001 From: Xiaoyi Shi Date: Thu, 6 Dec 2018 12:27:55 +0800 Subject: [PATCH 3/5] remove --experimentalDynamicImport as it's nolonger experimental: https://github.com/rollup/rollup/commit/4d4ec4c8b0e5223d99b35efb6003928b8fe23524 --- internal/rollup/rollup.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/rollup/rollup.config.js b/internal/rollup/rollup.config.js index 065565616d..c2d535f3a6 100644 --- a/internal/rollup/rollup.config.js +++ b/internal/rollup/rollup.config.js @@ -174,7 +174,6 @@ const config = { if (enableCodeSplitting) { config.experimentalCodeSplitting = true; - config.experimentalDynamicImport = true; config.input = inputs; config.output = { format: 'TMPL_output_format', From 90422e7e774817b9d165a9e263cb70e6d8e7505d Mon Sep 17 00:00:00 2001 From: Xiaoyi Shi Date: Thu, 6 Dec 2018 15:34:45 +0800 Subject: [PATCH 4/5] fix test --- internal/rollup/rollup.config.js | 3 +++ internal/rollup/rollup.config.spec.js | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/rollup/rollup.config.js b/internal/rollup/rollup.config.js index c2d535f3a6..72e557b890 100644 --- a/internal/rollup/rollup.config.js +++ b/internal/rollup/rollup.config.js @@ -192,4 +192,7 @@ else { config.output.banner = banner; +// export resolveBazel for testing without triggering unknown config error. +config.plugins.resolveBazel = resolveBazel; + module.exports = config; diff --git a/internal/rollup/rollup.config.spec.js b/internal/rollup/rollup.config.spec.js index 3620774340..87f0bd617c 100644 --- a/internal/rollup/rollup.config.spec.js +++ b/internal/rollup/rollup.config.spec.js @@ -33,7 +33,7 @@ const resolve = const rollupConfig = require('./rollup.config'); function doResolve(importee, importer) { - const resolved = rollupConfig.resolveBazel(importee, importer, baseDir, resolve, rootDir); + const resolved = rollupConfig.plugins.resolveBazel(importee, importer, baseDir, resolve, rootDir); if (resolved) { return resolved.replace(/\\/g, '/'); } else { @@ -72,7 +72,7 @@ describe('rollup config', () => { expect(doResolve(`other${sep}thing`)) .toEqual(`${baseDir}/bazel-bin/path/to/a.esm5/external/other_wksp/path/to/other_lib/thing`); expect(doResolve(`@bar${sep}baz${sep}foo`)) - .toEqual(`${baseDir}/bazel-bin/path/to/a.esm5/path/to/bar/baz_lib/foo`); + .toEqual(`${baseDir}/bazel-bin/path/to/a.esm5/path/to/bar/baz_lib/foo`); }); it('should find paths in any root', () => { From b8c53acfc1fd28dbec4d62c7d9158e1c4ca110f1 Mon Sep 17 00:00:00 2001 From: Xiaoyi Shi Date: Thu, 6 Dec 2018 16:02:40 +0800 Subject: [PATCH 5/5] name plugins and find bazelResolve from that --- internal/rollup/rollup.config.js | 7 ++----- internal/rollup/rollup.config.spec.js | 3 ++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/internal/rollup/rollup.config.js b/internal/rollup/rollup.config.js index 72e557b890..22a5acd3a8 100644 --- a/internal/rollup/rollup.config.js +++ b/internal/rollup/rollup.config.js @@ -164,10 +164,10 @@ const config = { throw new Error(message); }, plugins: [TMPL_additional_plugins].concat([ - {resolveId: resolveBazel}, + {name: 'bazel-resolve', resolveId: resolveBazel}, nodeResolve( {jsnext: true, module: true, customResolveOptions: {moduleDirectory: nodeModulesRoot}}), - {resolveId: notResolved}, + {name: 'bazel-not-resolved', resolveId: notResolved}, sourcemaps(), ]) } @@ -192,7 +192,4 @@ else { config.output.banner = banner; -// export resolveBazel for testing without triggering unknown config error. -config.plugins.resolveBazel = resolveBazel; - module.exports = config; diff --git a/internal/rollup/rollup.config.spec.js b/internal/rollup/rollup.config.spec.js index 87f0bd617c..54af7d98ff 100644 --- a/internal/rollup/rollup.config.spec.js +++ b/internal/rollup/rollup.config.spec.js @@ -31,9 +31,10 @@ const resolve = } const rollupConfig = require('./rollup.config'); +const resolveBazel = rollupConfig.plugins.find(({name}) => name === 'bazel-resolve').resolveId; function doResolve(importee, importer) { - const resolved = rollupConfig.plugins.resolveBazel(importee, importer, baseDir, resolve, rootDir); + const resolved = resolveBazel(importee, importer, baseDir, resolve, rootDir); if (resolved) { return resolved.replace(/\\/g, '/'); } else {