I’m creating a Vue plugin using Vue CLI 3. I was using the vue-cli-service build with target type lib to build the reusable plugin that could be imported into another project. While developing the plugin I was testing it as a local npm module (link) and I ran into this error “Cannot assign to read only property ‘exports’ of object”. I was using npm link
to create a local module.
It took a lot of googling around to find the solution. It turns out it has to do with Babel and webpack. As always once you know the solution it is simple. I had to add sourceType unambiguous
to my babel.config.js
file. This is my babel.config.js
file:
module.exports = { presets: [ '@vue/app' ], sourceType: 'unambiguous' }
This comment of a webpack issue contains the explanation. Please check it out to understand why this works.
I hope this helps someone and saves them (lots of) time.