v3.5.2: iOS build with more than 1 plugin fails with Cannot find module 'plist'
Author: alanningCreated Sep 12, 2026Updated Sep 15, 2026
Labelsnative-build-stack
Issue
Npm dependencies are pruned during the cordova build process for each plugin. Platform add writes it's package.json when it exits but the plugin installs happen before that and each successive npm install prunes the dependencies it doesn't need (i.e. the ones from the other plugins).
Workaround below.
Reproduction
meteor create --bare --release 3.5.2 plist-repro && cd plist-repro
meteor add-platform ios
printf '@havesource/[email protected]\[email protected]\n' > .meteor/cordova-plugins
printf "App.setPreference('deployment-target', '13.0', 'ios')\n" > mobile-config.js # the push plugin's Firebase pods need iOS 13
rm -rf .meteor/local/cordova-build
meteor build ../out --server=https://example.com --platforms=ios
Result
iOS project created with [email protected]
Installing "cordova-plugin-media" for ios
Installing "cordova-plugin-file" for ios
Failed to install 'cordova-plugin-file': Error: Cannot find module 'fast-glob'
...
=> Errors executing Cordova commands:
While adding platform iOS to Cordova project:
Error: Cannot find module 'fast-glob'
Workaround
Declare the dependency plugins directly in .meteor/cordova-plugins.
NOTE: You have to remove .meteor/local/cordova-build after a failed run or it will be mangled.
Attribution
Diagnosed by Claude Fable 5.2 - bug report written by hand
Please let me know if you would like a PR opened to fix this
Source: meteor/meteor