File tree Expand file tree Collapse file tree 10 files changed +121
-2
lines changed Expand file tree Collapse file tree 10 files changed +121
-2
lines changed Original file line number Diff line number Diff line change 1+ const path = require ( "path" ) ;
2+
3+ module . exports = {
4+ watchPathIgnorePatterns : [
5+ path . resolve ( __dirname , "build" )
6+ ]
7+ }
Original file line number Diff line number Diff line change 1+ import b from "./b.js" ;
2+
3+ const message = import ( "./c.js" ) . then ( c => c . default + b ) ;
4+
5+ export default message ;
Original file line number Diff line number Diff line change 1+ module . exports = 42 ;
Original file line number Diff line number Diff line change 1+ export default "Hello world" ;
Original file line number Diff line number Diff line change 1+ module . exports = {
2+ watch : ( ) => { }
3+ } ;
Original file line number Diff line number Diff line change @@ -22,5 +22,6 @@ suite.add(require("./source-map-benchmark"));
2222suite . add ( require ( "./typescript-benchmark" ) ) ;
2323suite . add ( require ( "./uglify-js-benchmark" ) ) ;
2424suite . add ( require ( "./uglify-es-benchmark" ) ) ;
25+ suite . add ( require ( "./webpack-benchmark" ) ) ;
2526
2627module . exports = suite ;
Original file line number Diff line number Diff line change @@ -79,5 +79,18 @@ fs.writeFileSync(
7979 "third_party/vue.runtime.esm-nobuble-2.4.4.js" ,
8080 require ( "raw-loader!../third_party/vue.runtime.esm-nobuble-2.4.4.js" )
8181) ;
82+ fs . mkdirpSync ( "/src/fixtures/webpack" ) ;
83+ fs . writeFileSync (
84+ "/src/fixtures/webpack/a.js" ,
85+ require ( "raw-loader!./fixtures/webpack/a.js" )
86+ ) ;
87+ fs . writeFileSync (
88+ "/src/fixtures/webpack/b.js" ,
89+ require ( "raw-loader!./fixtures/webpack/b.js" )
90+ ) ;
91+ fs . writeFileSync (
92+ "/src/fixtures/webpack/c.js" ,
93+ require ( "raw-loader!./fixtures/webpack/c.js" )
94+ ) ;
8295
8396module . exports = fs ;
Original file line number Diff line number Diff line change 1+ // Copyright 2017 the V8 project authors. All rights reserved.
2+ // Use of this source code is governed by a BSD-style license that can be
3+ // found in the LICENSE file.
4+
5+ const webpack = require ( "webpack" ) ;
6+
7+ const payloads = [
8+ {
9+ entry : "/src/fixtures/webpack/a.js"
10+ }
11+ ] . map ( ( { entry } , i ) => ( {
12+ entry,
13+ output : {
14+ path : "/dist/webpack/" ,
15+ filename : `bundle.${ i } .js`
16+ } ,
17+ // Using bail option in order to receive noisy errors in the benchmark if something went wrong
18+ bail : true ,
19+ // We need to define that because Firefox has a Object.prototype.watch function
20+ watch : false
21+ } ) ) ;
22+
23+ module . exports = {
24+ name : "webpack" ,
25+ defer : true ,
26+ fn ( deferred ) {
27+ return Promise . all (
28+ payloads . map (
29+ config =>
30+ new Promise ( ( resolve , reject ) => {
31+ const compiler = webpack ( config ) ;
32+ compiler . run ( ( err , stats ) => void ( err ? reject ( err ) : resolve ( ) ) ) ;
33+ } )
34+ )
35+ ) . then ( ( ) => deferred . resolve ( ) ) ;
36+ }
37+ } ;
Original file line number Diff line number Diff line change 1+ // Copyright 2017 the V8 project authors. All rights reserved.
2+ // Use of this source code is governed by a BSD-style license that can be
3+ // found in the LICENSE file.
4+
5+ const path = require ( "path" ) ;
6+ const webpack = require ( "webpack" ) ;
7+ const webpackConfig = require ( "../webpack.config.js" ) ;
8+
9+ const outputFile = path . resolve (
10+ __dirname ,
11+ ".." ,
12+ "build" ,
13+ "webpack-benchmark.test.js"
14+ ) ;
15+ let webpackBenchmark ;
16+
17+ beforeAll (
18+ ( ) =>
19+ new Promise ( ( resolve , reject ) => {
20+ const baseConfig = webpackConfig [ 0 ] ;
21+ const config = Object . assign ( { } , baseConfig , {
22+ entry : require . resolve ( "./webpack-benchmark.js" ) ,
23+ bail : true
24+ } ) ;
25+ config . output = Object . assign ( { } , baseConfig . output , {
26+ libraryTarget : "commonjs2" ,
27+ path : path . dirname ( outputFile ) ,
28+ filename : path . basename ( outputFile )
29+ } ) ;
30+ const compiler = webpack ( config ) ;
31+ compiler . run ( err => {
32+ if ( err ) {
33+ reject ( err ) ;
34+ return ;
35+ }
36+ webpackBenchmark = require ( outputFile ) ;
37+ resolve ( ) ;
38+ } ) ;
39+ } )
40+ ) ;
41+
42+ it ( "webpack runs to completion" , ( ) =>
43+ new Promise ( resolve => {
44+ webpackBenchmark . fn ( { resolve } ) ;
45+ } ) ) ;
Original file line number Diff line number Diff line change @@ -19,7 +19,10 @@ module.exports = [
1919 resolve : {
2020 alias : {
2121 fs : require . resolve ( "./src/vfs" ) ,
22- module : require . resolve ( "./src/mocks/dummy" )
22+ "graceful-fs" : require . resolve ( "./src/vfs" ) ,
23+ module : require . resolve ( "./src/mocks/dummy" ) ,
24+ chokidar : require . resolve ( "./src/mocks/chokidar" ) ,
25+ "uglify-js" : require . resolve ( "./src/mocks/dummy" )
2326 }
2427 } ,
2528 plugins : [
@@ -46,7 +49,10 @@ module.exports = [
4649 alias : {
4750 define : require . resolve ( "./src/mocks/dummy" ) ,
4851 fs : require . resolve ( "./src/vfs" ) ,
49- module : require . resolve ( "./src/mocks/dummy" )
52+ "graceful-fs" : require . resolve ( "./src/vfs" ) ,
53+ module : require . resolve ( "./src/mocks/dummy" ) ,
54+ chokidar : require . resolve ( "./src/mocks/chokidar" ) ,
55+ "uglify-js" : require . resolve ( "./src/mocks/dummy" )
5056 }
5157 } ,
5258 plugins : [
You can’t perform that action at this time.
0 commit comments