webpack - let build fail when webpack generates an error or a warning

This commit is contained in:
Johannes Rieken
2018-08-29 15:20:33 +02:00
parent 7fd581283d
commit 73d8c449c5
2 changed files with 47 additions and 21 deletions

View File

@@ -13,6 +13,13 @@ var __assign = (this && this.__assign) || Object.assign || function(t) {
};
Object.defineProperty(exports, "__esModule", { value: true });
var es = require("event-stream");
var fs = require("fs");
var glob = require("glob");
var gulp = require("gulp");
var path = require("path");
var File = require("vinyl");
var vsce = require("vsce");
var util2 = require("./util");
var assign = require("object-assign");
var remote = require("gulp-remote-src");
var flatmap = require('gulp-flatmap');
@@ -24,13 +31,6 @@ var buffer = require('gulp-buffer');
var json = require('gulp-json-editor');
var webpack = require('webpack');
var webpackGulp = require('webpack-stream');
var fs = require("fs");
var path = require("path");
var vsce = require("vsce");
var File = require("vinyl");
var glob = require("glob");
var gulp = require("gulp");
var util2 = require("./util");
var root = path.resolve(path.join(__dirname, '..', '..'));
function fromLocal(extensionPath, sourceMappingURLBase) {
var result = es.through();
@@ -67,11 +67,23 @@ function fromLocal(extensionPath, sourceMappingURLBase) {
return data;
}))
.pipe(packageJsonFilter.restore);
var webpackDone_1 = function (err, stats) {
if (err) {
result.emit('error', err);
}
var compilation = stats.compilation;
if (compilation.errors.length > 0) {
result.emit('error', compilation.errors.join('\n'));
}
if (compilation.warnings.length > 0) {
result.emit('error', compilation.warnings.join('\n'));
}
};
var webpackStreams = webpackConfigLocations.map(function (webpackConfigPath) {
var webpackConfig = __assign({}, require(webpackConfigPath), { mode: 'production', stats: 'errors-only' });
util.log("Bundling extension: " + util.colors.yellow(path.basename(extensionPath)) + "...");
var webpackConfig = __assign({}, require(webpackConfigPath), { mode: 'production' });
var relativeOutputPath = path.relative(extensionPath, webpackConfig.output.path);
var webpackBaseDir = path.dirname(webpackConfigPath);
return webpackGulp(webpackConfig, webpack)
return webpackGulp(webpackConfig, webpack, webpackDone_1)
.pipe(es.through(function (data) {
data.stat = data.stat || {};
data.base = extensionPath;