quasarframework/quasar · warning
No output folder found for target "${target}". Files have no
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.
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)
Solutions
- Find the artifacts manually under src-cordova/platforms/<target>/**/build/outputs (Android) or Xcode's DerivedData (iOS) and copy them into dist/.
- 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.
- 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
- After any build, verify dist/ actually contains the APK/AAB before distributing.
- Fix upstream Gradle/Xcode errors first; a missing output folder is usually a downstream symptom.
- Keep Android Gradle Plugin and Gradle versions aligned with your cordova-android release.
- Run the underlying build directly (cd src-cordova && cordova build android) to see full error output.
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
- Skipping unsupported entry type at ${fullPath}
- Gradle build failed!
- As an alternative, you can use the "--ide" param and build f
- AppDelegate.m not found. Your App will revoke the devserver'
- Please report the cordova CLI version and cordova-ios packag
AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30).
Data as JSON: /api/errors/424fe6959dd489ff.
Report an issue: GitHub.