|
1 | | -import { resolve } from 'path' |
2 | | -import glob from 'glob-promise' |
3 | | -import transpile from './transpile' |
4 | | -import bundle from './bundle' |
| 1 | +import webpack from './webpack' |
5 | 2 |
|
6 | 3 | export default async function build (dir) { |
7 | | - const dstDir = resolve(dir, '.next') |
8 | | - const templateDir = resolve(__dirname, '..', '..', 'lib', 'pages') |
| 4 | + const compiler = await webpack(dir) |
9 | 5 |
|
10 | | - // create `.next/pages/_error.js` |
11 | | - // which may be overwriten by the user script, `pages/_error.js` |
12 | | - const templatPaths = await glob('**/*.js', { cwd: templateDir }) |
13 | | - await Promise.all(templatPaths.map(async (p) => { |
14 | | - await transpile(resolve(templateDir, p), resolve(dstDir, 'pages', p)) |
15 | | - })) |
| 6 | + return new Promise((resolve, reject) => { |
| 7 | + compiler.run((err, stats) => { |
| 8 | + if (err) return reject(err) |
16 | 9 |
|
17 | | - const paths = await glob('**/*.js', { cwd: dir, ignore: 'node_modules/**' }) |
18 | | - await Promise.all(paths.map(async (p) => { |
19 | | - await transpile(resolve(dir, p), resolve(dstDir, p)) |
20 | | - })) |
| 10 | + const jsonStats = stats.toJson() |
| 11 | + if (jsonStats.errors.length > 0) { |
| 12 | + const error = new Error(jsonStats.errors[0]) |
| 13 | + error.errors = jsonStats.errors |
| 14 | + error.warnings = jsonStats.warnings |
| 15 | + return reject(error) |
| 16 | + } |
21 | 17 |
|
22 | | - const pagePaths = await glob('pages/**/*.js', { cwd: dstDir }) |
23 | | - await Promise.all(pagePaths.map(async (p) => { |
24 | | - await bundle(resolve(dstDir, p), resolve(dstDir, '_bundles', p)) |
25 | | - })) |
| 18 | + resolve() |
| 19 | + }) |
| 20 | + }) |
26 | 21 | } |
0 commit comments