File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,11 @@ class Server {
42
42
constructor ( compiler , options = { } ) {
43
43
validate ( schema , options , 'webpack Dev Server' ) ;
44
44
45
+ if ( compiler . devServer ) {
46
+ throw new Error ( 'The compiler already has a dev server attached.' ) ;
47
+ }
48
+ compiler . devServer = this ;
49
+
45
50
this . compiler = compiler ;
46
51
this . options = options ;
47
52
this . logger = this . compiler . getInfrastructureLogger ( 'webpack-dev-server' ) ;
Original file line number Diff line number Diff line change @@ -85,6 +85,29 @@ describe('Server', () => {
85
85
} ) ;
86
86
} ) ;
87
87
88
+ describe ( 'devServer property of the compiler' , ( ) => {
89
+ it ( 'should reference the Server instance' , ( done ) => {
90
+ const compiler = webpack ( config ) ;
91
+ const server = new Server ( compiler , baseDevConfig ) ;
92
+
93
+ compiler . hooks . done . tap ( 'webpack-dev-server' , ( ) => {
94
+ server . close ( done ) ;
95
+ } ) ;
96
+
97
+ compiler . run ( ( ) => { } ) ;
98
+ } ) ;
99
+
100
+ it ( 'should prevent multiple Server instances from using the same compiler' , ( ) => {
101
+ const compiler = webpack ( config ) ;
102
+ let server = new Server ( compiler , baseDevConfig ) ;
103
+
104
+ expect ( ( ) => {
105
+ // eslint-disable-next-line no-unused-vars
106
+ server = new Server ( compiler , baseDevConfig ) ;
107
+ } ) . toThrow ( ) ;
108
+ } ) ;
109
+ } ) ;
110
+
88
111
it ( 'test server error reporting' , ( ) => {
89
112
const compiler = webpack ( config ) ;
90
113
const server = new Server ( compiler , baseDevConfig ) ;
You can’t perform that action at this time.
0 commit comments