@@ -6,7 +6,7 @@ const Task = require('ember-cli/lib/models/task');
6
6
import * as webpack from 'webpack' ;
7
7
const WebpackDevServer = require ( 'webpack-dev-server' ) ;
8
8
const ProgressPlugin = require ( 'webpack/lib/ProgressPlugin' ) ;
9
- import { webpackDevServerOutputOptions } from '../models/' ;
9
+ import { webpackOutputOptions , verboseWebpackOutputOptions } from '../models/' ;
10
10
import { NgCliWebpackConfig } from '../models/webpack-config' ;
11
11
import { ServeTaskOptions } from '../commands/serve' ;
12
12
import { CliConfig } from '../models/config' ;
@@ -15,35 +15,42 @@ import * as url from 'url';
15
15
const opn = require ( 'opn' ) ;
16
16
17
17
export default Task . extend ( {
18
- run : function ( commandOptions : ServeTaskOptions ) {
18
+ run : function ( serveTaskOptions : ServeTaskOptions ) {
19
19
const ui = this . ui ;
20
20
21
21
let webpackCompiler : any ;
22
22
23
23
let config = new NgCliWebpackConfig (
24
24
this . project ,
25
- commandOptions . target ,
26
- commandOptions . environment ,
25
+ serveTaskOptions . target ,
26
+ serveTaskOptions . environment ,
27
27
undefined ,
28
28
undefined ,
29
- commandOptions . aot
29
+ serveTaskOptions . aot ,
30
+ serveTaskOptions . verbose
30
31
) . config ;
31
32
32
33
// This allows for live reload of page when changes are made to repo.
33
34
// https://webpack.github.io/docs/webpack-dev-server.html#inline-mode
34
35
config . entry . main . unshift (
35
- `webpack-dev-server/client?http://${ commandOptions . host } :${ commandOptions . port } /`
36
+ `webpack-dev-server/client?http://${ serveTaskOptions . host } :${ serveTaskOptions . port } /`
36
37
) ;
37
38
webpackCompiler = webpack ( config ) ;
38
39
39
- webpackCompiler . apply ( new ProgressPlugin ( {
40
- profile : true ,
41
- colors : true
42
- } ) ) ;
40
+ const statsOptions = serveTaskOptions . verbose
41
+ ? Object . assign ( webpackOutputOptions , verboseWebpackOutputOptions )
42
+ : webpackOutputOptions ;
43
+
44
+ if ( serveTaskOptions . progress ) {
45
+ webpackCompiler . apply ( new ProgressPlugin ( {
46
+ profile : serveTaskOptions . verbose ,
47
+ colors : true
48
+ } ) ) ;
49
+ }
43
50
44
51
let proxyConfig = { } ;
45
- if ( commandOptions . proxyConfig ) {
46
- const proxyPath = path . resolve ( this . project . root , commandOptions . proxyConfig ) ;
52
+ if ( serveTaskOptions . proxyConfig ) {
53
+ const proxyPath = path . resolve ( this . project . root , serveTaskOptions . proxyConfig ) ;
47
54
if ( fs . existsSync ( proxyPath ) ) {
48
55
proxyConfig = require ( proxyPath ) ;
49
56
} else {
@@ -54,12 +61,12 @@ export default Task.extend({
54
61
55
62
let sslKey : string = null ;
56
63
let sslCert : string = null ;
57
- if ( commandOptions . ssl ) {
58
- const keyPath = path . resolve ( this . project . root , commandOptions . sslKey ) ;
64
+ if ( serveTaskOptions . ssl ) {
65
+ const keyPath = path . resolve ( this . project . root , serveTaskOptions . sslKey ) ;
59
66
if ( fs . existsSync ( keyPath ) ) {
60
67
sslKey = fs . readFileSync ( keyPath , 'utf-8' ) ;
61
68
}
62
- const certPath = path . resolve ( this . project . root , commandOptions . sslCert ) ;
69
+ const certPath = path . resolve ( this . project . root , serveTaskOptions . sslCert ) ;
63
70
if ( fs . existsSync ( certPath ) ) {
64
71
sslCert = fs . readFileSync ( certPath , 'utf-8' ) ;
65
72
}
@@ -73,14 +80,14 @@ export default Task.extend({
73
80
historyApiFallback : {
74
81
disableDotRule : true ,
75
82
} ,
76
- stats : webpackDevServerOutputOptions ,
83
+ stats : statsOptions ,
77
84
inline : true ,
78
85
proxy : proxyConfig ,
79
- compress : commandOptions . target === 'production' ,
86
+ compress : serveTaskOptions . target === 'production' ,
80
87
watchOptions : {
81
88
poll : CliConfig . fromProject ( ) . config . defaults . poll
82
89
} ,
83
- https : commandOptions . ssl
90
+ https : serveTaskOptions . ssl
84
91
} ;
85
92
86
93
if ( sslKey != null && sslCert != null ) {
@@ -91,19 +98,21 @@ export default Task.extend({
91
98
ui . writeLine ( chalk . green ( oneLine `
92
99
**
93
100
NG Live Development Server is running on
94
- http${ commandOptions . ssl ? 's' : '' } ://${ commandOptions . host } :${ commandOptions . port } .
101
+ http${ serveTaskOptions . ssl ? 's' : '' } ://${ serveTaskOptions . host } :${ serveTaskOptions . port } .
95
102
**
96
103
` ) ) ;
97
104
98
105
const server = new WebpackDevServer ( webpackCompiler , webpackDevServerConfiguration ) ;
99
106
return new Promise ( ( resolve , reject ) => {
100
- server . listen ( commandOptions . port , `${ commandOptions . host } ` , function ( err : any , stats : any ) {
107
+ server . listen ( serveTaskOptions . port ,
108
+ `${ serveTaskOptions . host } ` ,
109
+ function ( err : any , stats : any ) {
101
110
if ( err ) {
102
111
console . error ( err . stack || err ) ;
103
112
if ( err . details ) { console . error ( err . details ) ; }
104
113
reject ( err . details ) ;
105
114
} else {
106
- const { open, host, port } = commandOptions ;
115
+ const { open, host, port } = serveTaskOptions ;
107
116
if ( open ) {
108
117
opn ( url . format ( { protocol : 'http' , hostname : host , port : port . toString ( ) } ) ) ;
109
118
}
0 commit comments