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/**')
})
]
})
参考资料: