我正在使用 vue-cli 4.5.13 和 --target wc 选项创建一个 Vue Web 组件。我还需要该组件来使用 vue-i18n-next 插件(vue 3 项目的最后一个版本),这需要将一些选项传递给主 Vue 实例,但现在没有主实例,因为入口点是 vue 组件本身,因此 i18n 必须在组件内实例化。
我发现了 vue2 的这个问题:
How can I use vue-i18n in a Vue web component?
它适用于 vue2,但i18n在组件选项中实例化对象对 vue3 无效(this.$i18n 保持未定义)。所以这不起作用:
export default {
name: "custom-compo",
i18n: i18n,
components: { ChildComponent }
data, methods...
};
Run Code Online (Sandbox Code Playgroud)
如果导出 Web 组件(并在标准页面上使用它),或者npm run serve在内部包含此组件的标准应用程序(但再次在组合中实例化 i18n 作为该问题的答案,而不是在 main.js 中),则该解决方案应该有效)
我不是在问如何在普通的 vue 项目中设置 vue-i18n,而是在问如何使用 vue-cli 和 vue 3 在将要构建或导出为自定义元素或 Web 组件的组件中初始化 i18n。
我没有使用组合 api 和 …