Skip to content

Commit c55eeca

Browse files
Bobby EarlBlackbaud-MikitaYankouski
Bobby Earl
authored andcommitted
Exposing the log flag and integrating with better logging plugin (blackbaud#357)
* Exposing the log flag and integrating with better logging plugin * Using expanded logging in Travis * Adding support for custom --log none * Cleaned up logging * Fixed tests * Consistently using logger. Disabled native stats. * Cleaned up logging. Pointing to fork (until dep release) * Cleaned up defaults + tests * Fixed bug. Cleaned up logging * Incorporated feedback to use logColor, logLevel, and logFormat flags * Updated to @blackbaud/skyux-logger 1.0.1 * Removed failing test as it was testing internal logger functionality
1 parent 66f7c2a commit c55eeca

40 files changed

+173
-161
lines changed

cli/e2e.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ const path = require('path');
77
const spawn = require('cross-spawn');
88
const selenium = require('selenium-standalone');
99
const protractorLauncher = require('protractor/built/launcher');
10+
const logger = require('@blackbaud/skyux-logger');
1011

1112
const build = require('./build');
1213
const server = require('./utils/server');
13-
const logger = require('../utils/logger');
1414
const configResolver = require('./utils/config-resolver');
1515

1616
// Disable this to quiet the output

cli/pact.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
*/
88
function pact(command, argv) {
99
const async = require('async');
10-
const configResolver = require('./utils/config-resolver');
1110
const karma = require('karma');
1211
const Server = karma.Server;
1312
const portfinder = require('portfinder');
1413
const url = require('url');
15-
const logger = require('../utils/logger');
14+
const logger = require('@blackbaud/skyux-logger');
15+
16+
const configResolver = require('./utils/config-resolver');
1617
const tsLinter = require('./utils/ts-linter');
1718
const skyPagesConfigUtil = require('../config/sky-pages/sky-pages.config');
1819
const pactServers = require('../utils/pact-servers');

cli/serve.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
'use strict';
33

44
const portfinder = require('portfinder');
5-
6-
const logger = require('../utils/logger');
5+
const logger = require('@blackbaud/skyux-logger');
76
const assetsProcessor = require('../lib/assets-processor');
87

98
/**

cli/test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* @name test
77
*/
88
function test(command, argv) {
9-
const logger = require('../utils/logger');
9+
const logger = require('@blackbaud/skyux-logger');
1010
const Server = require('karma').Server;
1111
const tsLinter = require('./utils/ts-linter');
1212
const configResolver = require('./utils/config-resolver');

cli/utils/browser.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
const util = require('util');
55
const open = require('open');
6-
const logger = require('winston');
6+
const logger = require('@blackbaud/skyux-logger');
77
const hostUtils = require('../../utils/host-utils');
88
const skyPagesConfigUtil = require('../../config/sky-pages/sky-pages.config');
99

cli/utils/config-resolver.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
const path = require('path');
55
const glob = require('glob');
66
const fs = require('fs-extra');
7-
const logger = require('winston');
7+
const logger = require('@blackbaud/skyux-logger');
88

99
const skyPagesConfigUtil = require('../../config/sky-pages/sky-pages.config');
1010

cli/utils/run-compiler.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*jshint node: true*/
22
'use strict';
33

4-
const logger = require('../../utils/logger');
4+
const logger = require('@blackbaud/skyux-logger');
55

66
const runCompiler = (webpack, config) => {
77
const compiler = webpack(config);
@@ -24,11 +24,7 @@ const runCompiler = (webpack, config) => {
2424
logger.warn(jsonStats.warnings);
2525
}
2626

27-
logger.info(stats.toString({
28-
chunks: false,
29-
colors: false
30-
}));
31-
27+
// Normal logging is handled by SimpleProgressWebpackPlugin in common.webpack.config.js
3228
resolve(stats);
3329
});
3430
});

cli/utils/server.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
const fs = require('fs');
55
const path = require('path');
6-
const logger = require('winston');
76
const portfinder = require('portfinder');
87
const express = require('express');
98
const https = require('https');
109
const cors = require('cors');
10+
const logger = require('@blackbaud/skyux-logger');
1111

1212
const app = express();
1313

cli/utils/ts-linter.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
'use strict';
33

44
const spawn = require('cross-spawn');
5+
const logger = require('@blackbaud/skyux-logger');
56
const skyPagesConfigUtil = require('../../config/sky-pages/sky-pages.config');
6-
const logger = require('../../utils/logger');
77

88
const flags = [
99
'--type-check',

cli/version.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
'use strict';
33

44
const path = require('path');
5-
const logger = require('../utils/logger');
5+
const logger = require('@blackbaud/skyux-logger');
66

77
/**
88
* Returns the version from package.json.

config/karma/pact.karma.conf.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
* @param {Object} config
88
*/
99
function getConfig(config) {
10+
const logger = require('@blackbaud/skyux-logger');
1011
const minimist = require('minimist');
1112
const argv = minimist(process.argv.slice(2));
1213
require(`./${argv.watch ? 'watch' : 'test'}.karma.conf`)(config);
1314
let skyPagesConfig = require('../sky-pages/sky-pages.config').getSkyPagesConfig(argv._[0]);
1415
let testWebpackConfig = require('../webpack/test.webpack.config');
15-
const logger = require('../../utils/logger');
1616
const path = require('path');
1717
const pactServers = require('../../utils/pact-servers');
1818

config/sky-pages/sky-pages.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
const fs = require('fs-extra');
55
const path = require('path');
66
const merge = require('../../utils/merge');
7-
const logger = require('../../utils/logger');
7+
const logger = require('@blackbaud/skyux-logger');
88

99
/**
1010
* Resolves a path given a root path and an array-like arguments object.

config/webpack/common.webpack.config.js

+64-41
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
/*jslint node: true */
22
'use strict';
33

4+
const logger = require('@blackbaud/skyux-logger');
45
const webpack = require('webpack');
56
const HtmlWebpackPlugin = require('html-webpack-plugin');
6-
const ProgressBarPlugin = require('progress-bar-webpack-plugin');
7+
const SimpleProgressWebpackPlugin = require('simple-progress-webpack-plugin');
78
const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin');
89
const CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin');
910
const ContextReplacementPlugin = require('webpack/lib/ContextReplacementPlugin');
@@ -20,6 +21,18 @@ function outPath() {
2021
return skyPagesConfigUtil.outPath.apply(skyPagesConfigUtil, arguments);
2122
}
2223

24+
function getLogFormat(skyPagesConfig, argv) {
25+
if (argv.hasOwnProperty('logFormat')) {
26+
return argv.logFormat;
27+
}
28+
29+
if (skyPagesConfig.runtime.command === 'serve' || argv.serve) {
30+
return 'compact';
31+
}
32+
33+
return 'expanded';
34+
}
35+
2336
/**
2437
* Called when loaded via require.
2538
* @name getWebpackConfig
@@ -36,6 +49,8 @@ function getWebpackConfig(skyPagesConfig, argv = {}) {
3649
let alias = aliasBuilder.buildAliasList(skyPagesConfig);
3750

3851
const outConfigMode = skyPagesConfig && skyPagesConfig.skyux && skyPagesConfig.skyux.mode;
52+
const logFormat = getLogFormat(skyPagesConfig, argv);
53+
3954
let appPath;
4055

4156
switch (outConfigMode) {
@@ -48,6 +63,53 @@ function getWebpackConfig(skyPagesConfig, argv = {}) {
4863
break;
4964
}
5065

66+
let plugins = [
67+
// Some properties are required on the root object passed to HtmlWebpackPlugin
68+
new HtmlWebpackPlugin({
69+
template: skyPagesConfig.runtime.app.template,
70+
inject: skyPagesConfig.runtime.app.inject,
71+
runtime: skyPagesConfig.runtime,
72+
skyux: skyPagesConfig.skyux
73+
}),
74+
75+
new CommonsChunkPlugin({
76+
name: ['skyux', 'vendor', 'polyfills']
77+
}),
78+
79+
new webpack.DefinePlugin({
80+
'skyPagesConfig': JSON.stringify(skyPagesConfig)
81+
}),
82+
83+
new LoaderOptionsPlugin({
84+
options: {
85+
context: __dirname,
86+
skyPagesConfig: skyPagesConfig
87+
}
88+
}),
89+
90+
new ContextReplacementPlugin(
91+
// The (\\|\/) piece accounts for path separators in *nix and Windows
92+
/angular(\\|\/)core(\\|\/)@angular/,
93+
spaPath('src'),
94+
{}
95+
),
96+
97+
// Webpack 2 behavior does not correctly return non-zero exit code.
98+
new ProcessExitCode(),
99+
100+
new OutputKeepAlivePlugin({
101+
enabled: argv['output-keep-alive']
102+
})
103+
];
104+
105+
// Supporting a custom logging type of none
106+
if (logFormat !== 'none') {
107+
plugins.push(new SimpleProgressWebpackPlugin({
108+
format: logFormat,
109+
color: logger.logColor
110+
}));
111+
}
112+
51113
return {
52114
entry: {
53115
polyfills: [outPath('src', 'polyfills.ts')],
@@ -111,46 +173,7 @@ function getWebpackConfig(skyPagesConfig, argv = {}) {
111173
}
112174
]
113175
},
114-
plugins: [
115-
// Some properties are required on the root object passed to HtmlWebpackPlugin
116-
new HtmlWebpackPlugin({
117-
template: skyPagesConfig.runtime.app.template,
118-
inject: skyPagesConfig.runtime.app.inject,
119-
runtime: skyPagesConfig.runtime,
120-
skyux: skyPagesConfig.skyux
121-
}),
122-
123-
new CommonsChunkPlugin({
124-
name: ['skyux', 'vendor', 'polyfills']
125-
}),
126-
127-
new webpack.DefinePlugin({
128-
'skyPagesConfig': JSON.stringify(skyPagesConfig)
129-
}),
130-
131-
new ProgressBarPlugin(),
132-
133-
new LoaderOptionsPlugin({
134-
options: {
135-
context: __dirname,
136-
skyPagesConfig: skyPagesConfig
137-
}
138-
}),
139-
140-
new ContextReplacementPlugin(
141-
// The (\\|\/) piece accounts for path separators in *nix and Windows
142-
/angular(\\|\/)core(\\|\/)@angular/,
143-
spaPath('src'),
144-
{}
145-
),
146-
147-
// Webpack 2 behavior does not correctly return non-zero exit code.
148-
new ProcessExitCode(),
149-
150-
new OutputKeepAlivePlugin({
151-
enabled: argv['output-keep-alive']
152-
})
153-
]
176+
plugins
154177
};
155178
}
156179

config/webpack/serve.webpack.config.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin');
99
const HotModuleReplacementPlugin = require('webpack/lib/HotModuleReplacementPlugin');
1010

1111
const skyPagesConfigUtil = require('../sky-pages/sky-pages.config');
12-
const logger = require('../../utils/logger');
1312
const browser = require('../../cli/utils/browser');
1413

1514
/**
@@ -28,14 +27,13 @@ function getWebpackConfig(argv, skyPagesConfig) {
2827
let launched = false;
2928
this.plugin('done', (stats) => {
3029
if (!launched) {
31-
logger.info('SKY UX builder is ready.');
3230
launched = true;
3331
browser(argv, skyPagesConfig, stats, this.options.devServer.port);
3432
}
3533
});
3634
}
3735

38-
const common = require('./common.webpack.config').getWebpackConfig(skyPagesConfig);
36+
const common = require('./common.webpack.config').getWebpackConfig(skyPagesConfig, argv);
3937

4038
return webpackMerge(common, {
4139
watch: true,
@@ -51,7 +49,8 @@ function getWebpackConfig(argv, skyPagesConfig) {
5149
// an aliased file. Webpack will still throw an error when a module
5250
// cannot be resolved via a file path or alias.
5351
ignoreDiagnostics: [2307],
54-
transpileOnly: true
52+
transpileOnly: true,
53+
silent: true
5554
}
5655
},
5756
{
@@ -65,6 +64,7 @@ function getWebpackConfig(argv, skyPagesConfig) {
6564
devServer: {
6665
compress: true,
6766
inline: true,
67+
stats: false,
6868
hot: argv.hmr,
6969
contentBase: path.join(process.cwd(), 'src', 'app'),
7070
headers: {
@@ -73,7 +73,6 @@ function getWebpackConfig(argv, skyPagesConfig) {
7373
historyApiFallback: {
7474
index: skyPagesConfigUtil.getAppBase(skyPagesConfig)
7575
},
76-
stats: 'minimal',
7776
https: {
7877
key: fs.readFileSync(path.join(__dirname, '../../ssl/server.key')),
7978
cert: fs.readFileSync(path.join(__dirname, '../../ssl/server.crt'))

e2e/shared/common.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ function prepareBuild(config) {
138138

139139
return new Promise((resolve, reject) => {
140140
rimrafPromise(path.join(tmp, 'dist'))
141-
.then(() => exec(`node`, [cliPath, `build`], cwdOpts))
141+
.then(() => exec(`node`, [cliPath, `build`, `--log`, `none`], cwdOpts))
142142
.then(serve)
143143
.then(resolve)
144144
.catch(err => reject(err));
@@ -209,7 +209,8 @@ function writeConfigServe(port) {
209209
});
210210

211211
writeConfig(skyuxConfigWithPort);
212-
webpackServer = childProcessSpawn(`node`, [cliPath, `serve`, `-l`, `none`], cwdOpts);
212+
const args = [cliPath, `serve`, `-l`, `none`, `--log`, `none`];
213+
webpackServer = childProcessSpawn(`node`, args, cwdOpts);
213214
resetConfig();
214215
resolve();
215216
});

e2e/skyux-e2e.e2e-spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
const common = require('./shared/common');
55

66
function validateTestRun(done) {
7-
common.exec(`node`, [common.cliPath, `e2e`], common.cwdOpts)
7+
common.exec(`node`, [common.cliPath, `e2e`, `--log`, `none`], common.cwdOpts)
88
.then(exit => {
99
expect(exit).toEqual(0);
1010
done();

lib/a11y-analyzer.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
'use strict';
33

44
const axeBuilder = require('axe-webdriverjs');
5-
const logger = require('../utils/logger');
5+
const logger = require('@blackbaud/skyux-logger');
66
const axeConfig = require('../config/axe/axe.config');
77
const { browser } = require('protractor');
88

loader/sky-processor/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*jshint node: true*/
22
'use strict';
33

4-
const logger = require('../../utils/logger');
4+
const logger = require('@blackbaud/skyux-logger');
55
let plugins;
66

77
const getPluginContents = (skyPagesConfig) => {

0 commit comments

Comments
 (0)