-
Couldn't load subscription status.
- Fork 5.3k
Closed
Closed
Copy link
Milestone
Description
Reproduction:
meteor npm install [email protected]and import it on the clientimport swiper from 'swiper';- In the package.json, have Meteor recompile swiper:
{
"meteor": {
"nodeModules": {
"recompile": {
"swiper": [
"legacy"
]
}
}
}
}When running in a legacy browser, there is the error in the node_modules/swiepr/cjs/components/core/core-class.js, which was bundled as part of the modules.js file.
Assignment to read-only properties is not allowed in strict mode
This is caused by:
- The
node_modules/swiepr/cjs/components/core/core-class.jsfile was already compiled by Babel before the package was published. Babel added the lineexports.__esModule = true - When Meteor compiles the file, Babel adds an import to a babel runtime helper. This runtime helper is imported using ECMAScript import syntax instead of using
require. - The reify compiler runs, changing the import to be a call to
module.link
When the file is run in the browser:
module.linkis called to import the babel helper.module.linkalso marks the module as being an ecmascript module, settingexports.__esModuleto a read only value- Next, the line babel aded,
exports.__esModule = true, runs. This errors since__esModuleis read only.