Skip to content

electron-builder fails when list of node_modules files is too big to pass in a glob #8705

Closed
@abram

Description

@abram

This recent change causes electron-builder to fail in my project:

const unpackGlob = unpackedPaths.length > 1 ? `{${unpackedPaths.join(",")}}` : unpackedPaths.pop()

It attempts to take a potentially large file list and put it into a glob pattern string. This causes an error due to exceeding a hard coded limit in minimatch:

pattern is too long
    at assertValidPattern (node_modules\minimatch\minimatch.js:280:11)
    at minimatch (node_modules\minimatch\minimatch.js:116:3)
    at isUnpackedDir (node_modules\@electron\asar\src\asar.ts:24:41)
    at handleFile (node_modules\@electron\asar\src\asar.ts:148:17)
    at next (node_modules\@electron\asar\src\asar.ts:185:5)
    at AsarPackager.executeElectronAsar (node_modules\app-builder-lib\src\asar\asarUtil.ts:77:5)
    at AsarPackager.pack (app-builder-lib\src\asar\asarUtil.ts:51:5)

You can see the limit code here:
https://github.com/isaacs/minimatch/blob/main/src/assert-valid-pattern.ts#L1

I'm not familiar with the asar module, but there must be a better way to pass a file list than using a giant glob.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions