Module "crypto" has been externalized for browser compatibility on v0.39 upgrade
brunoocasali opened this issue · 1 comments
Issue:
While upgrading to v0.39.0 you may see this error:
[plugin:vite:resolve] Module "crypto" has been externalized for browser compatibility, imported by ".../meilisearch-js-plugins/node_modules/meilisearch/dist/bundles/meilisearch.esm.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
It means you're probably using the Vue 3 and Vite like our instant-meilisearch playground.
Solution:
To fix this warning and to be able to build your app just add this to the config file:
export default defineConfig({
plugins: [vue()],
build: {
rollupOptions: {
external: ['crypto'], // this is the important part
},
},
})
Otherwise, you'll face errors like Module "crypto" has been externalized for browser compatibility
.
Original error: https://github.com/meilisearch/meilisearch-js-plugins/actions/runs/8970098117/job/24632854404?pr=1294
That was my attempt to fix the error, and it works meilisearch/meilisearch-js-plugins#1294.
If you think this is a mistake, here is the original PR #1616 that introduced this new requirement. We may want to revert it if the workaround I provided is not correct or brings too many drawbacks.