fix(generator, builder): empty build and dist directories instead of remove (#7361)

This commit is contained in:
Tim van den Eijnden 2020-05-13 16:46:13 +02:00 committed by GitHub
parent df4296c164
commit 2e5184688f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 16 deletions

View File

@ -153,8 +153,8 @@ export default class Builder {
consola.debug(`App root: ${this.options.srcDir}`) consola.debug(`App root: ${this.options.srcDir}`)
// Create .nuxt/, .nuxt/components and .nuxt/dist folders // Create or empty .nuxt/, .nuxt/components and .nuxt/dist folders
await fsExtra.remove(r(this.options.buildDir)) await fsExtra.emptyDir(r(this.options.buildDir))
const buildDirs = [r(this.options.buildDir, 'components')] const buildDirs = [r(this.options.buildDir, 'components')]
if (!this.options.dev) { if (!this.options.dev) {
buildDirs.push( buildDirs.push(
@ -162,7 +162,7 @@ export default class Builder {
r(this.options.buildDir, 'dist', 'server') r(this.options.buildDir, 'dist', 'server')
) )
} }
await Promise.all(buildDirs.map(dir => fsExtra.mkdirp(dir))) await Promise.all(buildDirs.map(dir => fsExtra.emptyDir(dir)))
// Call ready hook // Call ready hook
await this.nuxt.callHook('builder:prepared', this, this.options.build) await this.nuxt.callHook('builder:prepared', this, this.options.build)

View File

@ -18,6 +18,7 @@ jest.mock('@nuxt/webpack')
describe('builder: builder build', () => { describe('builder: builder build', () => {
beforeAll(() => { beforeAll(() => {
jest.spyOn(path, 'join').mockImplementation((...args) => `join(${args.join(', ')})`) jest.spyOn(path, 'join').mockImplementation((...args) => `join(${args.join(', ')})`)
r.mockImplementation((...args) => `r(${args.join(', ')})`)
}) })
afterAll(() => { afterAll(() => {
@ -44,8 +45,6 @@ describe('builder: builder build', () => {
builder.generateRoutesAndFiles = jest.fn() builder.generateRoutesAndFiles = jest.fn()
builder.resolvePlugins = jest.fn() builder.resolvePlugins = jest.fn()
r.mockImplementation((dir, src) => `r(${dir})`)
const buildReturn = await builder.build() const buildReturn = await builder.build()
expect(consola.info).toBeCalledTimes(3) expect(consola.info).toBeCalledTimes(3)
@ -60,12 +59,11 @@ describe('builder: builder build', () => {
expect(consola.success).toBeCalledWith('Builder initialized') expect(consola.success).toBeCalledWith('Builder initialized')
expect(consola.debug).toBeCalledTimes(1) expect(consola.debug).toBeCalledTimes(1)
expect(consola.debug).toBeCalledWith('App root: /var/nuxt/src') expect(consola.debug).toBeCalledWith('App root: /var/nuxt/src')
expect(fsExtra.remove).toBeCalledTimes(1) expect(fsExtra.emptyDir).toBeCalledTimes(4)
expect(fsExtra.remove).toBeCalledWith('r(/var/nuxt/build)') expect(fsExtra.emptyDir).nthCalledWith(1, 'r(/var/nuxt/build)')
expect(fsExtra.mkdirp).toBeCalledTimes(3) expect(fsExtra.emptyDir).nthCalledWith(2, 'r(/var/nuxt/build, components)')
expect(fsExtra.mkdirp).nthCalledWith(1, 'r(/var/nuxt/build)') expect(fsExtra.emptyDir).nthCalledWith(3, 'r(/var/nuxt/build, dist, client)')
expect(fsExtra.mkdirp).nthCalledWith(2, 'r(/var/nuxt/build)') expect(fsExtra.emptyDir).nthCalledWith(4, 'r(/var/nuxt/build, dist, server)')
expect(fsExtra.mkdirp).nthCalledWith(3, 'r(/var/nuxt/build)')
expect(r).toBeCalledTimes(4) expect(r).toBeCalledTimes(4)
expect(r).nthCalledWith(1, '/var/nuxt/build') expect(r).nthCalledWith(1, '/var/nuxt/build')
expect(r).nthCalledWith(2, '/var/nuxt/build', 'components') expect(r).nthCalledWith(2, '/var/nuxt/build', 'components')
@ -132,8 +130,9 @@ describe('builder: builder build', () => {
expect(consola.info).toBeCalledTimes(2) expect(consola.info).toBeCalledTimes(2)
expect(consola.info).nthCalledWith(1, 'Preparing project for development') expect(consola.info).nthCalledWith(1, 'Preparing project for development')
expect(consola.info).nthCalledWith(2, 'Initial build may take a while') expect(consola.info).nthCalledWith(2, 'Initial build may take a while')
expect(fsExtra.mkdirp).toBeCalledTimes(1) expect(fsExtra.emptyDir).toBeCalledTimes(2)
expect(fsExtra.mkdirp).toBeCalledWith('r(/var/nuxt/build)') expect(fsExtra.emptyDir).nthCalledWith(1, 'r(/var/nuxt/build)')
expect(fsExtra.emptyDir).nthCalledWith(2, 'r(/var/nuxt/build, components)')
expect(r).toBeCalledTimes(2) expect(r).toBeCalledTimes(2)
expect(r).nthCalledWith(1, '/var/nuxt/build') expect(r).nthCalledWith(1, '/var/nuxt/build')
expect(r).nthCalledWith(2, '/var/nuxt/build', 'components') expect(r).nthCalledWith(2, '/var/nuxt/build', 'components')

View File

@ -219,7 +219,7 @@ export default class Generator {
async initDist () { async initDist () {
// Clean destination folder // Clean destination folder
await fsExtra.remove(this.distPath) await fsExtra.emptyDir(this.distPath)
consola.info(`Generating output directory: ${path.basename(this.distPath)}/`) consola.info(`Generating output directory: ${path.basename(this.distPath)}/`)
await this.nuxt.callHook('generate:distRemoved', this) await this.nuxt.callHook('generate:distRemoved', this)

View File

@ -182,8 +182,8 @@ describe('generator: initialize', () => {
await generator.initDist() await generator.initDist()
expect(fsExtra.remove).toBeCalledTimes(1) expect(fsExtra.emptyDir).toBeCalledTimes(1)
expect(fsExtra.remove).toBeCalledWith(generator.distPath) expect(fsExtra.emptyDir).toBeCalledWith(generator.distPath)
expect(nuxt.callHook).toBeCalledTimes(2) expect(nuxt.callHook).toBeCalledTimes(2)
expect(nuxt.callHook).nthCalledWith(1, 'generate:distRemoved', generator) expect(nuxt.callHook).nthCalledWith(1, 'generate:distRemoved', generator)
expect(fsExtra.exists).toBeCalledTimes(1) expect(fsExtra.exists).toBeCalledTimes(1)