Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SyntaxError: Named export 'createI18n' not found #1131

Closed
5 tasks done
Tracked by #18
productdevbook opened this issue Aug 25, 2022 · 18 comments
Closed
5 tasks done
Tracked by #18

SyntaxError: Named export 'createI18n' not found #1131

productdevbook opened this issue Aug 25, 2022 · 18 comments
Labels
Type: Improvement Includes backwards-compatible fixes

Comments

@productdevbook
Copy link
Contributor

productdevbook commented Aug 25, 2022

Reporting a bug?

import { createI18n, useI18n } from "vue-i18n/dist/vue-i18n.runtime.esm-bundler.js";
         ^^^^^^^^^^
SyntaxError: Named export 'createI18n' not found. The requested module 'vue-i18n/dist/vue-i18n.runtime.esm-bundler.js' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

import pkg from 'vue-i18n/dist/vue-i18n.runtime.esm-bundler.js';
const { createI18n, useI18n } = pkg;

Expected behavior

  1. pnpm install
  2. pnpm build
  3. cd apps/docs
  4. pnpm build

Reproduction

branch: feat/date

https://github.com/huntersofbook/huntersofbook/tree/feat/date

System Info

System:
    OS: Linux 5.15 Ubuntu 22.04.1 LTS 22.04.1 LTS (Jammy Jellyfish)
    CPU: (12) x64 11th Gen Intel(R) Core(TM) i5-11400 @ 2.60GHz
    Memory: 17.10 GB / 31.12 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 16.17.0 - /usr/bin/node
    Yarn: 1.22.19 - /usr/bin/yarn
    npm: 8.15.0 - /usr/bin/npm
  Browsers:
    Chrome: 104.0.5112.101
  npmPackages:
    vitepress: 1.0.0-alpha.10 => 1.0.0-alpha.10

Screenshot

No response

Additional context

No response

Validations

@kazupon
Copy link
Member

kazupon commented Aug 26, 2022

Thank you for your reproduction!

Hmm 🤔 , I could not your reproduction same situation.
vitepress v1 alpha is using vite@v3, so vite@v3 require native ES modules

vue-i18n v9 is not yet a full native ES modules. So we need to support it.

@kazupon kazupon added Type: Improvement Includes backwards-compatible fixes and removed Status: Review Needed Request for review comments labels Aug 26, 2022
@productdevbook
Copy link
Contributor Author

productdevbook commented Aug 26, 2022

Sorry At first the packages were supposed to get the builder,

  1. pnpm install
  2. pnpm build
  3. cd apps/docs
  4. pnpm build

@kazupon
Copy link
Member

kazupon commented Aug 26, 2022

Okay, I’ve confirmed in another issue.
intlify/bundle-tools#166

@kazupon
Copy link
Member

kazupon commented Aug 28, 2022

I've just released vue-i18n@9.3.0-beta.1 and @intlify/vite-plugin-vue-i18n@7.0.0-beta.0
Please try to install and build with those!

Thanks!

@kazupon kazupon closed this as completed Aug 28, 2022
@productdevbook
Copy link
Contributor Author

https://github.com/huntersofbook/huntersofbook/tree/fix/i18n

branch: fix/i18n

vitepress v1.0.0-alpha.10
✓ building client + server bundles...
⠋ rendering pages...SyntaxError: 18
    at createCompileError (/home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/@intlify+message-compiler@9.3.0-beta.1/node_modules/@intlify/message-compiler/dist/message-compiler.cjs.prod.js:57:19)
    at createI18nError (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/vue-i18n@9.3.0-beta.1_vue@3.2.37/node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.mjs:100:12)
    at useI18n (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/vue-i18n@9.3.0-beta.1_vue@3.2.37/node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.mjs:2219:15)
    at setup (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/apps/docs/docs/.vitepress/.temp/app.js:6792:42)
    at _sfc_main.setup (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/apps/docs/docs/.vitepress/.temp/app.js:6811:23)
    at callWithErrorHandling (/home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:119:22)
    at setupStatefulComponent (/home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5789:29)
    at setupComponent (/home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5770:11)
    at renderComponentVNode (/home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/@vue+server-renderer@3.2.37_vue@3.2.37/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:169:17)
    at renderVNode (/home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/@vue+server-renderer@3.2.37_vue@3.2.37/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js:292:22) {
  code: 18,
  domain: undefined
}
[Vue warn]: Component <Anonymous> is missing template or render function.
file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/vue-i18n@9.3.0-beta.1_vue@3.2.37/node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.mjs:2147
                if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&
                                                                ^

ReferenceError: __VUE_PROD_DEVTOOLS__ is not defined
    at Object.install (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/vue-i18n@9.3.0-beta.1_vue@3.2.37/node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.mjs:2147:65)
    at Object.use (/home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:3393:28)
    at Module.install (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/apps/docs/docs/.vitepress/.temp/app.js:73:7)
    at file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/apps/docs/docs/.vitepress/.temp/app.js:6830:113
    at Array.map (<anonymous>)
    at Object.enhanceApp (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/apps/docs/docs/.vitepress/.temp/app.js:6830:91)
    at createApp (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/apps/docs/docs/.vitepress/.temp/app.js:7026:15)
    at render (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/apps/docs/docs/.vitepress/.temp/app.js:7070:29)
    at renderPage (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/vitepress@1.0.0-alpha.10/node_modules/vitepress/dist/node/serve-a32ee2b7.js:40619:25)
    at build (file:///home/productdevbook/Documents/GitHub/huntersofbook/open-source/node_modules/.pnpm/vitepress@1.0.0-alpha.10/node_modules/vitepress/dist/node/serve-a32ee2b7.js:40961:15)
 ELIFECYCLE  Command failed with exit code 1.
 ```

@kazupon kazupon reopened this Aug 28, 2022
@productdevbook
Copy link
Contributor Author

productdevbook commented Aug 29, 2022

image

nuxt 3 problem

@lakuapik
Copy link

@productdevbook same here with nuxt3

image

@productdevbook
Copy link
Contributor Author

@kazupon

    "vue-i18n": "9.3.0-beta.2"
    "@intlify/vite-plugin-vue-i18n": "7.0.0-beta.1",

iam update now but error

image

https://github.com/huntersofbook/huntersofbook/tree/fix/language
branch: fix/language

@kazupon
Copy link
Member

kazupon commented Aug 31, 2022

@productdevbook
Thank you for your feedback!
I've just fixed it and send PR, please wait 🙏
#1152

@kazupon
Copy link
Member

kazupon commented Aug 31, 2022

@productdevbook same here with nuxt3

image

BTW, you need use default export, later @intlify/vite-plugin-vue-i18n v7 or later

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

@kazupon
Copy link
Member

kazupon commented Aug 31, 2022

I've just released out vue-i18n 9.3.0-beta.3
Please check it!

@productdevbook
Copy link
Contributor Author

@lakuapik
Copy link

I've just released out vue-i18n 9.3.0-beta.3 Please check it!

@kazupon it works! thank you very much!

@kazupon
Copy link
Member

kazupon commented Aug 31, 2022

@productdevbook
Thank you as always!

As found out, this issue occurs in builds when SSR is enabled. The __VUE_PROD_DEVTOOLS__ flag is expected to be set to globalThis for vue-i18n.

I have tried to enable __VUE_PROD_DEVTOOLS__ in the configure hook of the vite plugin, but for some reason it is not enabled when SSR.
(And I noticed that other flags provided by vue-i18n are not enabled either)

I will continue to fix it. Please wait 🙏

@kazupon
Copy link
Member

kazupon commented Sep 2, 2022

@productdevbook
Hello!
I've just released @intlify/vite-plugin-vue-i18n v7.0.0-beta.2
Please check it!

I've checked your awesome hundersofbook!
So, I've faced the error in it the below:

vitepress v1.0.0-alpha.10
✓ building client + server bundles...
⠋ rendering pages...TypeError: format2 is not a function
    at localizedFormat (file:///path/to/tmp/huntersofbook/apps/docs/docs/.vitepress/.temp/app.js:99:10)
    at watch.immediate (file:///path/to/tmp/huntersofbook/apps/docs/docs/.vitepress/.temp/app.js:2350:430)
    at callWithErrorHandling (/path/to/tmp/huntersofbook/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:119:22)
    at callWithAsyncErrorHandling (/path/to/tmp/huntersofbook/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:128:21)
    at doWatch (/path/to/tmp/huntersofbook/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:1280:13)
    at watch (/path/to/tmp/huntersofbook/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:1209:12)
    at setup (file:///path/to/tmp/huntersofbook/apps/docs/docs/.vitepress/.temp/app.js:2341:5)
    at callWithErrorHandling (/path/to/tmp/huntersofbook/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:119:22)
    at setupStatefulComponent (/path/to/tmp/huntersofbook/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5789:29)
    at setupComponent (/path/to/tmp/huntersofbook/node_modules/.pnpm/@vue+runtime-core@3.2.37/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js:5770:11)
✓ rendering pages...
build complete in 11.57s.

I seem that date-fns is not to fully support cjs/mjs
vite3 SSR (vitepress) requires esm, so you might want to check if your module is supported as a dual module.

@productdevbook
Copy link
Contributor Author

@kazupon
Thank you fixed,

https://huntersofbook.pages.dev/docs/ui/hdatetime/

and change language after live dont change,

but local test, change and page refresh and fixed. Why ?

code -> https://github.com/huntersofbook/huntersofbook/blob/main/apps/docs/components/Language.vue

and brach main push

image

@kazupon
Copy link
Member

kazupon commented Sep 2, 2022

I've checked useTimeFromNow

You need to pass ref type, not the primitive value (locale.value)

https://github.com/huntersofbook/huntersofbook/blob/20f15a847859553ce8478a609bb7159cd29d06b8/packages/core/src/utils/date-fns/use-time-from-now.ts#L5

The locale exported from useI18n is already ref.
Your composable function should take that value and implement it to work reactively.

@productdevbook
Copy link
Contributor Author

Thank you fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Improvement Includes backwards-compatible fixes
Projects
None yet
Development

No branches or pull requests

3 participants