From d0979f368eed1f11d88e763f98c846d9b4636752 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Mon, 28 Oct 2019 15:05:40 -0500 Subject: [PATCH] Disable worker_threads by default --- examples/with-firebase-authentication/next.config.js | 9 --------- .../plugins/terser-webpack-plugin/src/TaskRunner.js | 2 +- packages/next/next-server/server/config.ts | 2 +- test/integration/firebase-grpc/test/index.test.js | 11 +++++------ 4 files changed, 7 insertions(+), 17 deletions(-) delete mode 100644 examples/with-firebase-authentication/next.config.js diff --git a/examples/with-firebase-authentication/next.config.js b/examples/with-firebase-authentication/next.config.js deleted file mode 100644 index ff566d92fe871..0000000000000 --- a/examples/with-firebase-authentication/next.config.js +++ /dev/null @@ -1,9 +0,0 @@ -// Parallel builds are currently broken due to a limitation in grpc (a transitive firebase -// dependency). Until this is fixed, a workaround is to set the number of available CPUs to 1. -// https://github.com/zeit/next.js/issues/7894 -// https://github.com/grpc/grpc-node/issues/778 -module.exports = { - experimental: { - cpus: 1 - } -} diff --git a/packages/next/build/webpack/plugins/terser-webpack-plugin/src/TaskRunner.js b/packages/next/build/webpack/plugins/terser-webpack-plugin/src/TaskRunner.js index 469de3051b486..b306966292ede 100644 --- a/packages/next/build/webpack/plugins/terser-webpack-plugin/src/TaskRunner.js +++ b/packages/next/build/webpack/plugins/terser-webpack-plugin/src/TaskRunner.js @@ -28,8 +28,8 @@ export default class TaskRunner { if (this.maxConcurrentWorkers > 1) { this.workers = new Worker(worker, { - numWorkers: this.maxConcurrentWorkers, enableWorkerThreads: true, + numWorkers: this.maxConcurrentWorkers, }) this.boundWorkers = options => this.workers.default(options) } else { diff --git a/packages/next/next-server/server/config.ts b/packages/next/next-server/server/config.ts index 7c742c14889c3..97a8745c9ab9f 100644 --- a/packages/next/next-server/server/config.ts +++ b/packages/next/next-server/server/config.ts @@ -48,7 +48,7 @@ const defaultConfig: { [key: string]: any } = { publicDirectory: false, sprFlushToDisk: true, deferScripts: false, - workerThreads: true, + workerThreads: false, }, future: { excludeDefaultMomentLocales: false, diff --git a/test/integration/firebase-grpc/test/index.test.js b/test/integration/firebase-grpc/test/index.test.js index 270d3d2b93699..b3aa63e39a882 100644 --- a/test/integration/firebase-grpc/test/index.test.js +++ b/test/integration/firebase-grpc/test/index.test.js @@ -10,7 +10,10 @@ const nextConfig = path.join(appDir, 'next.config.js') describe('Builds with firebase dependency only sequentially', () => { it('Throws an error when building with firebase dependency with worker_threads', async () => { - await fs.remove(nextConfig) + await fs.writeFile( + nextConfig, + `module.exports = { experimental: { workerThreads: true } }` + ) const results = await nextBuild(appDir, [], { stdout: true, stderr: true }) expect(results.stdout + results.stderr).toMatch(/Build error occurred/) expect(results.stdout + results.stderr).toMatch( @@ -19,12 +22,8 @@ describe('Builds with firebase dependency only sequentially', () => { }) it('Throws no error when building with firebase dependency without worker_threads', async () => { - await fs.writeFile( - nextConfig, - `module.exports = { experimental: { workerThreads: false } }` - ) - const results = await nextBuild(appDir, [], { stdout: true, stderr: true }) await fs.remove(nextConfig) + const results = await nextBuild(appDir, [], { stdout: true, stderr: true }) expect(results.stdout + results.stderr).not.toMatch(/Build error occurred/) expect(results.stdout + results.stderr).not.toMatch( /grpc_node\.node\. Module did not self-register\./