diff --git a/tools/isobuild/package-api.js b/tools/isobuild/package-api.js index 6239cfa7c17..4fff4a2d8ca 100644 --- a/tools/isobuild/package-api.js +++ b/tools/isobuild/package-api.js @@ -366,6 +366,8 @@ export class PackageAPI { mainModule(path, arch, fileOptions = {}) { arch = toArchArray(arch); + const errors = []; + forAllMatchingArchs(arch, a => { const filesForArch = this.files[a]; const source = { @@ -392,11 +394,19 @@ export class PackageAPI { } } + if (filesForArch.sources.some(old => source.relPath === old.relPath)) { + errors.push(`Duplicate api.mainModule: ${path}`); + } + filesForArch.main = source; filesForArch.sources.push(source); this._forbidExportWithLazyMain(a); }); + + errors.forEach(error => { + buildmessage.error(error, { useMyCaller: 1 }); + }); } _forbidExportWithLazyMain(arch) {