From f3e7a0b02af0d36160214b5b3f54e7f1d04aaada Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Wed, 28 Jun 2017 12:57:16 +0200 Subject: [PATCH 1/4] fix: Fail on transpilation errors Currently, storybook does not exit non-zero when there are errors in the pipeline, e.g. we are using TypeScript with `ts-loader` and a type error that fails tsc does not make storybook exit non-zero even though the transpilation failed. --- app/react/src/server/build.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/react/src/server/build.js b/app/react/src/server/build.js index 01a4a7394041..74082edd11b1 100755 --- a/app/react/src/server/build.js +++ b/app/react/src/server/build.js @@ -80,8 +80,17 @@ webpack(config).run((err, stats) => { if (err) { logger.error('Failed to build the storybook'); logger.error(err.message); + } + if (stats.hasErrors()) { + logger.error('Failed to build the storybook'); + stats.toJson().errors.forEach(function (e) { + return logger.error(e); + }); + } + if (err || stats.hasErrors()) { process.exit(1); } + const data = { publicPath: config.output.publicPath, From 302f15773e5c9d01229a10eaec13d74640333ea3 Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Wed, 28 Jun 2017 12:57:44 +0200 Subject: [PATCH 2/4] Update build.js --- app/react/src/server/build.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/react/src/server/build.js b/app/react/src/server/build.js index 74082edd11b1..f618fabba8f8 100755 --- a/app/react/src/server/build.js +++ b/app/react/src/server/build.js @@ -90,7 +90,6 @@ webpack(config).run((err, stats) => { if (err || stats.hasErrors()) { process.exit(1); } - const data = { publicPath: config.output.publicPath, From 9c57ae0d3d6831c02a57b08d593023109aa27f7b Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Wed, 28 Jun 2017 13:18:40 +0200 Subject: [PATCH 3/4] factor into one if --- app/react/src/server/build.js | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/app/react/src/server/build.js b/app/react/src/server/build.js index f618fabba8f8..f003fcb1cf4b 100755 --- a/app/react/src/server/build.js +++ b/app/react/src/server/build.js @@ -77,17 +77,10 @@ if (program.staticDir) { // compile all resources with webpack and write them to the disk. logger.log('Building storybook ...'); webpack(config).run((err, stats) => { - if (err) { - logger.error('Failed to build the storybook'); - logger.error(err.message); - } - if (stats.hasErrors()) { - logger.error('Failed to build the storybook'); - stats.toJson().errors.forEach(function (e) { - return logger.error(e); - }); - } if (err || stats.hasErrors()) { + logger.error('Failed to build the storybook'); + err && logger.error(err.message); + stats.hasErrors() && stats.toJson().errors.forEach(e => logger.error(e)); process.exit(1); } From 50aac0520c04e31e7d5e24ae8a8e132e25a4daa1 Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Wed, 28 Jun 2017 13:39:25 +0200 Subject: [PATCH 4/4] allow guard --- app/react/src/server/build.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/react/src/server/build.js b/app/react/src/server/build.js index f003fcb1cf4b..b6b9f047e6e7 100755 --- a/app/react/src/server/build.js +++ b/app/react/src/server/build.js @@ -79,7 +79,9 @@ logger.log('Building storybook ...'); webpack(config).run((err, stats) => { if (err || stats.hasErrors()) { logger.error('Failed to build the storybook'); + // eslint-disable-next-line no-unused-expressions err && logger.error(err.message); + // eslint-disable-next-line no-unused-expressions stats.hasErrors() && stats.toJson().errors.forEach(e => logger.error(e)); process.exit(1); }