intlify / vue-cli-plugin-i18n

:globe_with_meridians: Vue CLI plugin to add vue-i18n to your Vue Project
MIT License
195 stars 41 forks source link

json messages is empty when use pnpm #204

Open NateScarlet opened 3 years ago

NateScarlet commented 3 years ago

https://github.com/intlify/vue-cli-plugin-i18n/blob/fdc4fc04e1e9d3955907b47d9151f50d6530d2dc/index.js#L31

pnpm store package in a different way, so ../../src is not point to project src folder

vue inspect --rule i18n-resource

/* config.module.rule('i18n-resource') */
{
  test: /\.(json5?|ya?ml)$/,
  type: 'javascript/auto',
  include: [
    '${workspaceFolder}\\node_modules\\.pnpm\\vue-cli-plugin-i18n@2.1.0\\src\\locales'
  ],
  use: [
    /* config.module.rule('i18n-resource').use('i18n-resource') */
    {
      loader: '@intlify/vue-i18n-loader'
    }
  ]
}
NateScarlet commented 3 years ago

workaround:

    config.module
      .rule('i18n-resource')
      .include.clear()
      .add(resolve(__dirname, 'src/locales'));

i18n plugin should search nearest node_modules or use a different default value for pnpm

kazupon commented 3 years ago

Thank you for your reporting!

sorry, I don't usually use pnpm much, so I wasn't able to test it. I will fix this issue later.

Rhilip commented 2 years ago

workaround:

    config.module
      .rule('i18n-resource')
      .include.clear()
      .add(resolve(__dirname, 'src/locales'));

i18n plugin should search nearest node_modules or use a different default value for pnpm

this issue and workaround help me a lot. Many vue project like vue3, vite has switch to pnpm now,

I hope this project will support pnpm with fix the wrong include in localeDir

Silbad commented 2 years ago

Hello, same pb with vue-cli. How can I fix this?

Silbad commented 2 years ago

ok I fixed it in the vue.config.js

    chainWebpack: config => {
        config.module
            .rule('i18n-resource')
            .include.clear()
            .add(path.resolve(__dirname, 'src/locales'));
    }

Thanks