vue-cli-plugin-i18n icon indicating copy to clipboard operation
vue-cli-plugin-i18n copied to clipboard

Some Question In ui.js set localeDir path

Open jkiwen opened this issue 7 years ago • 0 comments

When I modified the project entry in vue.config.js with Vue-cli 3.0 like:

 configureWebpack: {
    resolve: {
      alias:{'@' : resolve('examples')},
    }
  },
  chainWebpack: config => {
    const appsetting = config.entry('app');
    appsetting.clear();
    appsetting.add('./examples/main.ts');
  },

project tree like:

+Root
    + examples
            +assets 
            +components
            +locales
            +views
            App.vue
            i18n.ts
            main.ts
            ......
    +node_modules
    +packages
    ......
    vue.config.js

then I run the vue service command: "vue ui" and view the plugin in the browser, throw an error:

Error: ENOENT: no such file or directory, scandir 'd:\vscode\crucian\crucian-vue-ui/src/locales' at Object.readdirSync (fs.js:750:3) at getLocales (d:\vscode\crucian\crucian-vue-ui\node_modules\vue-cli-plugin-i18n\ui.js:47:13) at setupAddon (d:\vscode\crucian\crucian-vue-ui\node_modules\vue-cli-plugin-i18n\ui.js:94:21) at api.onPluginReload.project (d:\vscode\crucian\crucian-vue-ui\node_modules\vue-cli-plugin-i18n\ui.js:117:7) at fns.forEach.fn (C:\Users\jkiwen\AppData\Roaming\npm\node_modules@vue\cli\node_modules_@[email protected]@@vue\cli-ui\apollo-server\connectors\plugins.js:255:21) at Array.forEach () at callHook (C:\Users\jkiwen\AppData\Roaming\npm\node_modules@vue\cli\node_modules_@[email protected]@@vue\cli-ui\apollo-server\connectors\plugins.js:255:7) at Timeout.setTimeout [as _onTimeout] (C:\Users\jkiwen\AppData\Roaming\npm\node_modules@vue\cli\node_modules_@[email protected]@@vue\cli-ui\apollo-server\connectors\plugins.js:201:9) at ontimeout (timers.js:424:11) at tryOnTimeout (timers.js:288:5)

then I saw the code of ui.js the code set the "localeDir" as absolute path "src"

function setupAddon (path, options) { debug(setupAddon: path -> ${path}, options -> ${options}) const localeDir = options.localeDir setSharedData('order', 'asc') const env = readEnv(${path}/.env) const current = env['VUE_APP_I18N_LOCALE'] || 'en' const defaultLocale = env['VUE_APP_I18N_FALLBACK_LOCALE'] || 'en' setSharedData('current', defaultLocale) setSharedData('defaultLocale', defaultLocale) debug(setupAddon: current -> ${current}, defaultLocale -> ${defaultLocale}) const locales = getLocales(${path}/src/${localeDir}) setSharedData('locales', locales) const messages = getLocaleMessages(${path}/src/${localeDir}, locales) setSharedData('localeMessages', messages) setSharedData('localePaths', getLocalePaths(messages)) } const localePath = ${currentProject.path}/src/${currentConfig.localeDir}

So, the path 'src' can be used relative path ?? Or, How can I use the relative path in the project?

jkiwen avatar Sep 13 '18 01:09 jkiwen