|
1 | | -'use strict'; |
| 1 | +const path = require('path'), |
| 2 | + webpack = require('webpack'), |
| 3 | + assert = require('assert'); |
2 | 4 |
|
3 | | -var path = require('path'); |
4 | | -var webpack = require('webpack'); |
5 | | -var assert = require('assert') |
6 | | - |
7 | | -var tempDir = path.resolve(__dirname, './temp/'); |
8 | | -var loader = path.resolve(__dirname, '../'); |
9 | | - |
10 | | -var baseConfig = { |
11 | | - entry: './test/fixtures/index.js', |
12 | | - output: { |
13 | | - path: tempDir, |
14 | | - filename: '[id].js', |
15 | | - }, |
16 | | - devtool: 'source-map', |
17 | | - module: { |
18 | | - loaders: [ |
19 | | - { |
20 | | - test: /\.js$/, |
21 | | - loader: loader, |
22 | | - query: { |
23 | | - objectAssign: 'Object.assign' |
24 | | - }, |
25 | | - exclude: /node_modules/, |
26 | | - }, |
27 | | - ], |
28 | | - }, |
| 5 | +const baseConfig = { |
| 6 | + output: { |
| 7 | + path: path.resolve(__dirname, './temp/'), |
| 8 | + filename: '[id].js' |
| 9 | + }, |
| 10 | + devtool: 'source-map', |
| 11 | + module: { |
| 12 | + rules: [ |
| 13 | + { |
| 14 | + test: /\.js$/, |
| 15 | + loader: path.resolve(__dirname, '../'), |
| 16 | + options: { |
| 17 | + objectAssign: 'Object.assign' |
| 18 | + }, |
| 19 | + exclude: /node_modules/ |
| 20 | + } |
| 21 | + ] |
| 22 | + } |
29 | 23 | }; |
30 | 24 |
|
31 | | -webpack(baseConfig, function(err, stats) { |
32 | | - if (stats.compilation.errors.length > 0) { |
33 | | - console.error(stats.compilation.errors[0].message); |
34 | | - process.exit(1); |
35 | | - } |
| 25 | +for (let mode of ['development', 'production']) { |
| 26 | + baseConfig.mode = mode; |
| 27 | + baseConfig.entry = './test/fixtures/index.js'; |
| 28 | + webpack(baseConfig, function (err, stats) { |
| 29 | + if (stats.compilation.errors.length > 0) { |
| 30 | + console.error(stats.compilation.errors[0].message); |
| 31 | + process.exit(1); |
| 32 | + } |
36 | 33 |
|
37 | | - baseConfig.entry = './test/fixtures/errors.js'; |
38 | | - webpack(baseConfig, function(err, stats) { |
39 | | - var niceErrorMessage = [ |
40 | | - 'ERROR in ./test/fixtures/errors.js', |
41 | | - 'Module build failed: ', |
42 | | - '1 : // double arrow?', |
43 | | - '2 : const add = (a, b) ==> 1', |
44 | | - ' ^', |
45 | | - 'Unexpected token (2:21)' |
46 | | - ].join('\n'); |
47 | | - assert.ok(stats.toString().includes(niceErrorMessage), 'output contains a nice error msg'); |
48 | | - }); |
49 | | -}); |
| 34 | + baseConfig.entry = './test/fixtures/errors.js'; |
| 35 | + webpack(baseConfig, function (err, stats) { |
| 36 | + assert.ok(stats.toString().includes([ |
| 37 | + 'ERROR in ./test/fixtures/errors.js', |
| 38 | + 'Module build failed: BubleLoaderError: ', |
| 39 | + '1 : // double arrow?', |
| 40 | + '2 : const add = (a, b) ==> 1', |
| 41 | + ' ^', |
| 42 | + 'Unexpected token (2:21)' |
| 43 | + ].join('\n')), 'output contains a nice error msg'); |
| 44 | + }); |
| 45 | + }); |
| 46 | +} |
0 commit comments