quasarframework/quasar · warning

No output folder found for target

Error message

No output folder found for target "${target}". Files have not been copied to /dist. You will need to manually extract the Cordova distributables.

What it means

After building via Cordova, Quasar copies the platform build output (e.g. platforms/android/app/build/outputs/apk) into dist/. When the expected output folder for the target platform doesn't exist, the copy is skipped and this warning tells you to grab the distributables manually.

Solutions

  1. Find the artifacts manually under src-cordova/platforms/<target>/**/build/outputs (Android) or Xcode's DerivedData (iOS) and copy them into dist/.
  2. Re-run the build and scroll for the real compiler error — the missing output folder is usually a downstream symptom of a failed Gradle/Xcode build; fix that first.
  3. Check the Android Gradle Plugin/Gradle versions in src-cordova (build.gradle) match what cordova-android expects, then re-add the platform if output paths changed.
Defensive patterns

Strategy: validation

Validate before calling

const fs = require('fs');
const outputs = [
  'src-cordova/platforms/android/app/build/outputs/apk/debug',
  'src-cordova/platforms/android/app/build/outputs/bundle/release'
];
if (!outputs.some(p => fs.existsSync(p) && fs.readdirSync(p).length)) {
  console.warn('No Android build outputs found — the Gradle build likely failed; artifacts will not be copied to dist/');
}

Prevention

When it happens

Trigger: #packageFiles in cordova-builder.js after a build when fse.existsSync(outputFolder) is false for the requested target (android/ios) — typically because the Gradle/Xcode build produced nothing or built to an unexpected path.

Common situations: A silent Gradle failure earlier in the pipeline; Android Gradle Plugin version that changed output paths (e.g. AAB vs APK directories); building an unsigned/ios archive on a machine without the right Xcode setup; running only `quasar build -m cordova -T android` with a broken android project.

Related errors


AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30). Data as JSON: /api/errors/424fe6959dd489ff. Report an issue: GitHub.

Appendix: source

Thrown at app-vite/lib/modes/cordova/cordova-builder.js:139

      const targetFolder = join(
        this.quasarConf.build.distDir,
        this.quasarConf.ctx.targetName
      )

      for (const folder of outputTargetList) {
        const outputFolder = appPaths.resolve.cordova(folder)
        if (fse.existsSync(outputFolder)) {
          log(
            `Copying Cordova distributables from ${outputFolder} to ${targetFolder}`
          )
          log()
          fse.copySync(outputFolder, targetFolder)
          return
        }
      }

      warn(
        `No output folder found for target "${target}".` +
          ' Files have not been copied to /dist. You will need' +
          ' to manually extract the Cordova distributables.'
      )
      log()
    }
  }

  #cleanup() {
    this.#cordovaConfigFile.reset()
  }

  #runCordovaCommand(args) {
    const { promise, resolve } = Promise.withResolvers()
    spawn('cordova', args, { cwd: this.ctx.appPaths.cordovaDir }, code => {
      this.#cleanup()

      if (code) {

View on GitHub (pinned to 4841521b5f)