vue add i18n在vuejs3和@ vue / cli 4.5.4中出错,该错误是什么意思,以及如何调试?

问题描述

当我尝试添加i18n时,我正在运行此错误

    ?  Invoking generator for vue-cli-plugin-i18n...
 ERROR  Error: You cannot call "get" on a collection with no paths. Instead,check the "length" property first to verify at least 1 path exists.
Error: You cannot call "get" on a collection with no paths. Instead,check the "length" property first to verify at least 1 path exists.
    at Collection.get (/usr/local/lib/node_modules/@vue/cli/node_modules/jscodeshift/src/Collection.js:213:13)
    at injectOptions (/usr/local/lib/node_modules/@vue/cli/lib/util/codemods/injectOptions.js:15:6)
    at runTransformation (/usr/local/lib/node_modules/@vue/cli/node_modules/vue-codemod/dist/src/run-transformation.js:61:17)
    at Object.keys.forEach.file (/usr/local/lib/node_modules/@vue/cli/lib/Generator.js:290:23)
    at Array.forEach (<anonymous>)
    at Generator.resolveFiles (/usr/local/lib/node_modules/@vue/cli/lib/Generator.js:276:24)
    at process._tickCallback (internal/process/next_tick.js:68:7)

vue add命令之前的package.json看起来像这样:

{
  "name": "com.food-cheatsheet","version": "0.1.0","private": true,"scripts": {
    "serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint"
  },"dependencies": {
    "core-js": "^3.6.5","vue": "^3.0.0-0","vue-router": "^4.0.0-0"
  },"devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0","@vue/cli-plugin-eslint": "~4.5.0","@vue/cli-plugin-router": "~4.5.0","@vue/cli-service": "~4.5.0","@vue/compiler-sfc": "^3.0.0-0","babel-eslint": "^10.1.0","eslint": "^6.7.2","eslint-plugin-vue": "^7.0.0-0","tailwindcss": "^1.7.5"
  }
}

到目前为止,我使用vue create设置了项目,并安装了tailwindcss和postcss。

您能形容我,错误实际上意味着什么?我猜它与i18n无关,但是当我使用add

时,也会与其他模块一起发生
  • npm install vue-i18n有效(FYI)

其他问题

如何在vuejs 3.0中设置i18n?这里的vuejs2和3有什么区别?

解决方法

与vuetifyjs https://github.com/vuetifyjs/vue-cli-plugins/issues/140相同的问题

vue 3

npm install --save vue-i18n@next
yarn add vue-i18n@next

并手动配置i18n

vue-i18n-next中的示例:

Example with using Composable API

Example with using Legacy API

Examples Directory

如果要安装vue add i18n更改

createApp(App)
  .use(store)
  .use(router)
  .mount("#app");

  new Vue({
    router,store,render: h => h(App)
  }).$mount("#app");

对于打字稿项目,添加vue-i18n.d.ts文件,内容为

declare module "vue-i18n"

对于vue 3,我安装了npm install --save vue-i18n@next而不是vue add i18n