vite vue i18n Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source

自vue-i18n@v9.0,用消息编译器处理locale消息,编译后将它们转换为javascript函数。在编译后,消息编译器将它们转换为javascript函数,这可以提高应用程序的性能。

然而,使用消息编译器,在某些环境下(如CSP),javascript函数的转换将不起作用。由于这个原因,vue-i18n@v9.0 及以后的版本提供了一个包括编译器和运行时的完整版本,以及一个只包括运行时的版本。

使用 vite 插件 vite-plugin-vue-i18n 处理这个问题

npm i --save-dev @intlify/vite-plugin-vue-i18n

vite.config.ts

import vueI18n from '@intlify/vite-plugin-vue-i18n'

export default defineConfig({
  plugins: [
    vue(),
    vueI18n({
      // you need to set i18n resource including paths !
      include: path.resolve(__dirname, './path/to/src/locales/**')
    })
  ]
})

参考资料:

posted @ 2021-07-11 18:54  guangzan  阅读(2011)  评论(0编辑  收藏  举报