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

Production Build Failed for Dynamic Import of ?raw Files #3222

Closed
6 tasks done
Penguinlay opened this issue Apr 30, 2021 · 5 comments
Closed
6 tasks done

Production Build Failed for Dynamic Import of ?raw Files #3222

Penguinlay opened this issue Apr 30, 2021 · 5 comments
Labels
inconsistency Inconsistency between dev & build pending triage

Comments

@Penguinlay
Copy link

Penguinlay commented Apr 30, 2021

Describe the bug

I want to dynamically import content from a Markdown file, and use them as string. I won't also know if the file exists or not.
Thus, with @patak-js's help, I first created glob import of all the files in that folder and then customized the module created by glob import, by appending ?raw to the import.

const docs = import.meta.glob("../models/docs/*/*.md");
Object.keys(docs).map((path) => (docs[path] = () => import(`${path}?raw`)));
fullPath = "somePathString";
docs[fullPath]().then(content => source.value = content.default);

During the development, this workaround works; however whenever those dynamically imports are triggered, I got a warning that Vite cannot analyze the dynamic import.

7:30:27 PM [vite] warning:
/Users/shein/kk/gh/uni5-ideal/src/components/ExternalMarkdown.vue
24 |      ];
25 |      const docs = import.meta.glob("../models/docs/*/*.md");
26 |      Object.keys(docs).map((path) => docs[path] = () => import(`${path}?raw`));
   |                                                                ^
27 |      const source = ref("");
28 |      const getSource = () => {
The above dynamic import cannot be analyzed by vite.
See https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations for supported dynamic import formats. If this is intended to be left as-is, you can use the /* @vite-ignore */ comment inside the import() call to suppress this warning.

  Plugin: vite:import-analysis
  File: /Users/shein/kk/gh/uni5-ideal/src/components/ExternalMarkdown.vue

So, I wondered if it is because the custom append on line does not satisfy the dynamic import format requirement.
I fixed the customization above to below and the warning disappeared!

const docs = import.meta.glob("../models/docs/*/*.md");
Object.keys(docs).map((path) => (docs[path] = () => import(`../${path.slice(3, -3)}.md?raw`)));
fullPath = "somePathString";
docs[fullPath]().then(content => source.value = content.default);

However, in both of the above cases, I got the build error below.

  uni5-upstream git:(next) yarn build
yarn run v1.22.10
$ vite build
vite v2.2.3 building for production...
 150 modules transformed.
[rollup-plugin-dynamic-import-variables] Unexpected token (1:0)
file: /Users/shein/kk/gh/uni5-upstream/src/models/docs/cn/AppAbout.md:1:0
error during build:
SyntaxError: Unexpected token (1:0)
    at Object.pp$4.raise (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:15636:13)
    at Object.pp.unexpected (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:13328:8)
    at Object.pp$3.parseExprAtom (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:15035:10)
    at Object.pp$3.parseExprSubscripts (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14838:19)
    at Object.pp$3.parseMaybeUnary (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14815:17)
    at Object.parseMaybeUnary (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:19581:29)
    at Object.pp$3.parseExprOps (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14750:19)
    at Object.pp$3.parseMaybeConditional (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14733:19)
    at Object.pp$3.parseMaybeAssign (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14701:19)
    at Object.pp$3.parseExpression (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14667:19)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I tried it out with both Vite v2.0.5 and v2.2.3, and the same behavior for both versions.
How can I resolve this issue and let me know if you need any more information from me to reproduce the issue.

Reproduction

https://github.com/Penguinlay/reproduction-viteDynamicImportBug

System Info

Output of npx envinfo --system --npmPackages vite,@vitejs/plugin-vue --binaries --browsers:

  System:
    OS: macOS 11.4
    CPU: (8) x64 Apple M1
    Memory: 77.21 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 15.12.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.9.0 - /usr/local/bin/npm
  Browsers:
    Safari: 14.1.1
  npmPackages:
    @vitejs/plugin-vue: 1.2.1 => 1.2.1
    vite: 2.2.3 => 2.2.3

Used package manager: yarn v1.22.10

Logs

yarn cache clean; rm -rf node_modules; rm yarn.lock; yarn; yarn vite --debug

  uni5-upstream git:(next) yarn cache clean; rm -rf node_modules; rm yarn.lock; yarn; yarn vite --debug
yarn cache v1.22.10
success Cleared cache.
  Done in 0.47s.
yarn install v1.22.10
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "@intlify/vite-plugin-vue-i18n > @rollup/[email protected]" has unmet peer dependency "rollup@^1.20.0||^2.0.0".
warning " > [email protected]" has unmet peer dependency "webpack@^4.36.0 || ^5.0.0".
warning "vue-cli-plugin-vuetify > [email protected]" has unmet peer dependency "webpack@^4.3.0".
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
  Done in 12.19s.
yarn run v1.22.10
$ /Users/shein/kk/gh/uni5-upstream/node_modules/.bin/vite --debug
  vite:config bundled config file loaded in 364ms +0ms
  vite:config using resolved config: {
  vite:config   define: {
  vite:config     'process.env': {},
  vite:config     'import.meta.env.PACKAGE_VERSION': '"5.0.0-alpha.7"',
  vite:config     __VUE_OPTIONS_API__: true,
  vite:config     __VUE_PROD_DEVTOOLS__: false,
  vite:config     __VUE_I18N_LEGACY_API__: false,
  vite:config     __VUE_I18N_FULL_INSTALL__: false,
  vite:config     __VUE_I18N_PROD_DEVTOOLS__: false
  vite:config   },
  vite:config   plugins: [
  vite:config     'vite:pre-alias',
  vite:config     'alias',
  vite:config     'vite:dynamic-import-polyfill',
  vite:config     'vite:resolve',
  vite:config     'vite:html',
  vite:config     'vite:css',
  vite:config     'vite:esbuild',
  vite:config     'vite:json',
  vite:config     'vite:wasm',
  vite:config     'vite:worker',
  vite:config     'vite:asset',
  vite:config     'vite-plugin-package-version',
  vite:config     'vite:vue',
  vite:config     'vite-plugin-vue-i18n',
  vite:config     'vite:define',
  vite:config     'vite:css-post',
  vite:config     'vite:client-inject',
  vite:config     'vite:import-analysis'
  vite:config   ],
  vite:config   resolve: { dedupe: undefined, alias: [ [Object], [Object] ] },
  vite:config   server: {},
  vite:config   ssr: { external: [ 'vue', '@vue/server-renderer' ] },
  vite:config   configFile: '/Users/shein/kk/gh/uni5-upstream/vite.config.ts',
  vite:config   configFileDependencies: [ 'vite.config.ts' ],
  vite:config   inlineConfig: {
  vite:config     root: undefined,
  vite:config     base: undefined,
  vite:config     mode: undefined,
  vite:config     configFile: undefined,
  vite:config     logLevel: undefined,
  vite:config     clearScreen: undefined,
  vite:config     server: {}
  vite:config   },
  vite:config   root: '/Users/shein/kk/gh/uni5-upstream',
  vite:config   base: '/',
  vite:config   publicDir: '/Users/shein/kk/gh/uni5-upstream/public',
  vite:config   cacheDir: '/Users/shein/kk/gh/uni5-upstream/node_modules/.vite',
  vite:config   command: 'serve',
  vite:config   mode: 'development',
  vite:config   isProduction: false,
  vite:config   build: {
  vite:config     target: [ 'es2019', 'edge18', 'firefox60', 'chrome61', 'safari11' ],
  vite:config     polyfillDynamicImport: true,
  vite:config     outDir: 'dist',
  vite:config     assetsDir: 'assets',
  vite:config     assetsInlineLimit: 4096,
  vite:config     cssCodeSplit: true,
  vite:config     sourcemap: false,
  vite:config     rollupOptions: {},
  vite:config     commonjsOptions: { include: [Array], extensions: [Array] },
  vite:config     minify: 'terser',
  vite:config     terserOptions: {},
  vite:config     cleanCssOptions: {},
  vite:config     write: true,
  vite:config     emptyOutDir: null,
  vite:config     manifest: false,
  vite:config     lib: false,
  vite:config     ssr: false,
  vite:config     ssrManifest: false,
  vite:config     brotliSize: true,
  vite:config     chunkSizeWarningLimit: 500,
  vite:config     watch: null
  vite:config   },
  vite:config   env: { BASE_URL: '/', MODE: 'development', DEV: true, PROD: false },
  vite:config   assetsInclude: [Function: assetsInclude],
  vite:config   logger: {
  vite:config     hasWarned: false,
  vite:config     info: [Function: info],
  vite:config     warn: [Function: warn],
  vite:config     error: [Function: error],
  vite:config     clearScreen: [Function: clearScreen]
  vite:config   },
  vite:config   createResolver: [Function: createResolver]
  vite:config } +4ms
  vite:deps Crawling dependencies using entries:
  vite:deps   /Users/shein/kk/gh/uni5-upstream/index.html +0ms
  vite:resolve 1ms   /src/main.ts -> /Users/shein/kk/gh/uni5-upstream/src/main.ts +0ms
  vite:resolve 2ms   vue -> /Users/shein/kk/gh/uni5-upstream/node_modules/vue/dist/vue.runtime.esm-bundler.js +6ms
  vite:resolve 1ms   ./plugins/i18n -> /Users/shein/kk/gh/uni5-upstream/src/plugins/i18n/index.ts +2ms
  vite:resolve 1ms   ./plugins/store -> /Users/shein/kk/gh/uni5-upstream/src/plugins/store/index.ts +1ms
  vite:resolve 0ms   ./plugins/router -> /Users/shein/kk/gh/uni5-upstream/src/plugins/router/index.ts +0ms
  vite:resolve 1ms   ./plugins/axios -> /Users/shein/kk/gh/uni5-upstream/src/plugins/axios/index.ts +1ms
  vite:resolve 0ms   ./plugins/markdownIt -> /Users/shein/kk/gh/uni5-upstream/src/plugins/markdownIt/index.ts +0ms
  vite:resolve 0ms   ./App.vue -> /Users/shein/kk/gh/uni5-upstream/src/App.vue +0ms
  vite:resolve 4ms   vue-i18n/dist/vue-i18n.cjs.js -> /Users/shein/kk/gh/uni5-upstream/node_modules/vue-i18n/dist/vue-i18n.cjs.js +8ms
  vite:resolve 4ms   axios -> /Users/shein/kk/gh/uni5-upstream/node_modules/axios/index.js +0ms
  vite:resolve 5ms   vue-i18n -> /Users/shein/kk/gh/uni5-upstream/node_modules/vue-i18n/dist/vue-i18n.cjs.js +1ms
  vite:resolve 3ms   vue3-markdown-it -> /Users/shein/kk/gh/uni5-upstream/node_modules/vue3-markdown-it/dist/vue3-markdown-it.umd.min.js +3ms
  vite:resolve 3ms   vue-router -> /Users/shein/kk/gh/uni5-upstream/node_modules/vue-router/dist/vue-router.esm-bundler.js +0ms
  vite:resolve 3ms   vuex -> /Users/shein/kk/gh/uni5-upstream/node_modules/vuex/dist/vuex.esm-bundler.js +0ms
  vite:resolve 3ms   vue-axios -> /Users/shein/kk/gh/uni5-upstream/node_modules/vue-axios/dist/vue-axios.es5.js +0ms
  vite:resolve 0ms   ./routes -> /Users/shein/kk/gh/uni5-upstream/src/plugins/router/routes.ts +0ms
  vite:resolve 1ms   ../../models/datas/defaultApp -> /Users/shein/kk/gh/uni5-upstream/src/models/datas/defaultApp.ts +1ms
  vite:resolve 0ms   ../../scripts/gamesmanUni -> /Users/shein/kk/gh/uni5-upstream/src/scripts/gamesmanUni.ts +0ms
  vite:resolve 0ms   ../../components/TheHomePage.vue -> /Users/shein/kk/gh/uni5-upstream/src/components/TheHomePage.vue +1ms
  vite:resolve 0ms   ../../components/TheAboutPage.vue -> /Users/shein/kk/gh/uni5-upstream/src/components/TheAboutPage.vue +0ms
  vite:resolve 0ms   ../../components/ThePuzzlesPage.vue -> /Users/shein/kk/gh/uni5-upstream/src/components/ThePuzzlesPage.vue +1ms
  vite:resolve 0ms   ../../components/TheGamesPage.vue -> /Users/shein/kk/gh/uni5-upstream/src/components/TheGamesPage.vue +0ms
  vite:resolve 0ms   ../../components/TheVariantsPage.vue -> /Users/shein/kk/gh/uni5-upstream/src/components/TheVariantsPage.vue +0ms
  vite:resolve 0ms   ./apis/gamesCrafters -> /Users/shein/kk/gh/uni5-upstream/src/scripts/apis/gamesCrafters.ts +0ms
  vite:resolve 0ms   ../../components/TheGamePage.vue -> /Users/shein/kk/gh/uni5-upstream/src/components/TheGamePage.vue +0ms
  vite:resolve 0ms   ./apis/gitHub -> /Users/shein/kk/gh/uni5-upstream/src/scripts/apis/gitHub.ts +1ms
  vite:resolve 0ms   ../../components/TheUpdatesPage.vue -> /Users/shein/kk/gh/uni5-upstream/src/components/TheUpdatesPage.vue +0ms
  vite:resolve 1ms   ../../components/The404Page.vue -> /Users/shein/kk/gh/uni5-upstream/src/components/The404Page.vue +1ms
  vite:deps Scan completed in 82ms: {
  vue: '/Users/shein/kk/gh/uni5-upstream/node_modules/vue/dist/vue.runtime.esm-bundler.js',
  axios: '/Users/shein/kk/gh/uni5-upstream/node_modules/axios/index.js',
  'vue-i18n': '/Users/shein/kk/gh/uni5-upstream/node_modules/vue-i18n/dist/vue-i18n.cjs.js',
  'vue3-markdown-it': '/Users/shein/kk/gh/uni5-upstream/node_modules/vue3-markdown-it/dist/vue3-markdown-it.umd.min.js',
  'vue-router': '/Users/shein/kk/gh/uni5-upstream/node_modules/vue-router/dist/vue-router.esm-bundler.js',
  vuex: '/Users/shein/kk/gh/uni5-upstream/node_modules/vuex/dist/vuex.esm-bundler.js',
  'vue-axios': '/Users/shein/kk/gh/uni5-upstream/node_modules/vue-axios/dist/vue-axios.es5.js'
} +46ms
Pre-bundling dependencies:
  vue
  axios
  vue-i18n
  vue3-markdown-it
  vue-router
  (...and 2 more)
(this will be run only when your dependencies or config have changed)
  vite:resolve 0ms   @vue/runtime-dom -> null +0ms
  vite:resolve 1ms   @vue/runtime-dom -> /Users/shein/kk/gh/uni5-upstream/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +0ms
  vite:resolve 0ms   @intlify/shared -> null +13ms
  vite:resolve 1ms   @intlify/shared -> /Users/shein/kk/gh/uni5-upstream/node_modules/@intlify/shared/dist/shared.esm-bundler.js +0ms
  vite:resolve 0ms   @intlify/core-base -> null +5ms
  vite:resolve 1ms   @intlify/core-base -> /Users/shein/kk/gh/uni5-upstream/node_modules/@intlify/core-base/dist/core-base.esm-bundler.js +4ms
  vite:resolve 0ms   @vue/runtime-core -> null +2ms
  vite:resolve 0ms   @vue/runtime-core -> /Users/shein/kk/gh/uni5-upstream/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +18ms
  vite:resolve 0ms   @vue/shared -> null +1ms
  vite:resolve 0ms   @vue/shared -> /Users/shein/kk/gh/uni5-upstream/node_modules/@vue/shared/dist/shared.esm-bundler.js +1ms
  vite:resolve 0ms   @intlify/message-resolver -> null +2ms
  vite:resolve 0ms   @intlify/message-resolver -> /Users/shein/kk/gh/uni5-upstream/node_modules/@intlify/message-resolver/dist/message-resolver.esm-bundler.js +2ms
  vite:resolve 0ms   @intlify/runtime -> null +1ms
  vite:resolve 1ms   @intlify/runtime -> /Users/shein/kk/gh/uni5-upstream/node_modules/@intlify/runtime/dist/runtime.esm-bundler.js +2ms
  vite:resolve 0ms   @intlify/message-compiler -> null +1ms
  vite:resolve 1ms   @intlify/message-compiler -> /Users/shein/kk/gh/uni5-upstream/node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js +1ms
  vite:resolve 0ms   @intlify/shared -> /Users/shein/kk/gh/uni5-upstream/node_modules/@intlify/shared/dist/shared.esm-bundler.js +0ms
  vite:resolve 0ms   @intlify/devtools-if -> null +2ms
  vite:resolve 0ms   @intlify/devtools-if -> /Users/shein/kk/gh/uni5-upstream/node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js +1ms
  vite:resolve 0ms   @vue/reactivity -> null +11ms
  vite:resolve 1ms   @vue/reactivity -> /Users/shein/kk/gh/uni5-upstream/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +12ms
  vite:deps deps bundled in 179ms +0ms
Port 3000 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +2ms
Port 3001 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +0ms
Port 3002 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +1ms
Port 3003 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +1ms
Port 3004 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +0ms
Port 3005 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +1ms
Port 3006 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +0ms
Port 3007 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +1ms
Port 3008 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +1ms
Port 3009 is in use, trying another one...
  vite:deps Hash is consistent. Skipping. Use --force to override. +0ms

  vite v2.2.3 dev server running at:

  > Local:    http://localhost:3010/
  > Network:  http://1.1.1.123:3010/

  ready in 1167ms.

yarn cache clean; rm -rf node_modules; rm yarn.lock; yarn; yarn build --debug

  uni5-upstream git:(next) yarn cache clean; rm -rf node_modules; rm yarn.lock; yarn; yarn build --debug
yarn cache v1.22.10
success Cleared cache.
  Done in 0.46s.
yarn install v1.22.10
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "@intlify/vite-plugin-vue-i18n > @rollup/[email protected]" has unmet peer dependency "rollup@^1.20.0||^2.0.0".
warning " > [email protected]" has unmet peer dependency "webpack@^4.36.0 || ^5.0.0".
warning "vue-cli-plugin-vuetify > [email protected]" has unmet peer dependency "webpack@^4.3.0".
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
  Done in 12.85s.
yarn run v1.22.10
$ vite build --debug
  vite:config bundled config file loaded in 391ms +0ms
  vite:config using resolved config: {
  vite:config   define: {
  vite:config     'process.env': {},
  vite:config     'import.meta.env.PACKAGE_VERSION': '"5.0.0-alpha.7"',
  vite:config     __VUE_OPTIONS_API__: true,
  vite:config     __VUE_PROD_DEVTOOLS__: false,
  vite:config     __VUE_I18N_LEGACY_API__: false,
  vite:config     __VUE_I18N_FULL_INSTALL__: false,
  vite:config     __VUE_I18N_PROD_DEVTOOLS__: false
  vite:config   },
  vite:config   plugins: [
  vite:config     'alias',
  vite:config     'vite:dynamic-import-polyfill',
  vite:config     'vite:resolve',
  vite:config     'vite:html',
  vite:config     'vite:css',
  vite:config     'vite:esbuild',
  vite:config     'vite:json',
  vite:config     'vite:wasm',
  vite:config     'vite:worker',
  vite:config     'vite:asset',
  vite:config     'vite-plugin-package-version',
  vite:config     'vite:vue',
  vite:config     'vite-plugin-vue-i18n',
  vite:config     'vite:define',
  vite:config     'vite:css-post',
  vite:config     'vite:build-html',
  vite:config     'commonjs',
  vite:config     'vite:data-uri',
  vite:config     'rollup-plugin-dynamic-import-variables',
  vite:config     'vite:import-analysis',
  vite:config     'vite:esbuild-transpile',
  vite:config     'vite:terser',
  vite:config     'vite:reporter'
  vite:config   ],
  vite:config   resolve: { dedupe: undefined, alias: [ [Object], [Object] ] },
  vite:config   build: {
  vite:config     target: [ 'es2019', 'edge18', 'firefox60', 'chrome61', 'safari11' ],
  vite:config     polyfillDynamicImport: true,
  vite:config     outDir: 'dist',
  vite:config     assetsDir: 'assets',
  vite:config     assetsInlineLimit: 4096,
  vite:config     cssCodeSplit: true,
  vite:config     sourcemap: false,
  vite:config     rollupOptions: {},
  vite:config     commonjsOptions: { include: [Array], extensions: [Array] },
  vite:config     minify: 'terser',
  vite:config     terserOptions: {},
  vite:config     cleanCssOptions: {},
  vite:config     write: true,
  vite:config     emptyOutDir: null,
  vite:config     manifest: false,
  vite:config     lib: false,
  vite:config     ssr: false,
  vite:config     ssrManifest: false,
  vite:config     brotliSize: true,
  vite:config     chunkSizeWarningLimit: 500,
  vite:config     watch: null
  vite:config   },
  vite:config   ssr: { external: [ 'vue', '@vue/server-renderer' ] },
  vite:config   configFile: '/Users/shein/kk/gh/uni5-upstream/vite.config.ts',
  vite:config   configFileDependencies: [ 'vite.config.ts' ],
  vite:config   inlineConfig: {
  vite:config     root: undefined,
  vite:config     base: undefined,
  vite:config     mode: undefined,
  vite:config     configFile: undefined,
  vite:config     logLevel: undefined,
  vite:config     clearScreen: undefined,
  vite:config     build: {}
  vite:config   },
  vite:config   root: '/Users/shein/kk/gh/uni5-upstream',
  vite:config   base: '/',
  vite:config   publicDir: '/Users/shein/kk/gh/uni5-upstream/public',
  vite:config   cacheDir: '/Users/shein/kk/gh/uni5-upstream/node_modules/.vite',
  vite:config   command: 'build',
  vite:config   mode: 'production',
  vite:config   isProduction: true,
  vite:config   server: {},
  vite:config   env: { BASE_URL: '/', MODE: 'production', DEV: false, PROD: true },
  vite:config   assetsInclude: [Function: assetsInclude],
  vite:config   logger: {
  vite:config     hasWarned: false,
  vite:config     info: [Function: info],
  vite:config     warn: [Function: warn],
  vite:config     error: [Function: error],
  vite:config     clearScreen: [Function: clearScreen]
  vite:config   },
  vite:config   createResolver: [Function: createResolver]
  vite:config } +4ms
vite v2.2.3 building for production...
 151 modules transformed.
[rollup-plugin-dynamic-import-variables] Unexpected token (1:0)
file: /Users/shein/kk/gh/uni5-upstream/src/models/docs/cn/FileNotFound.md:1:0
error during build:
SyntaxError: Unexpected token (1:0)
    at Object.pp$4.raise (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:15636:13)
    at Object.pp.unexpected (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:13328:8)
    at Object.pp$3.parseExprAtom (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:15035:10)
    at Object.pp$3.parseExprSubscripts (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14838:19)
    at Object.pp$3.parseMaybeUnary (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14815:17)
    at Object.parseMaybeUnary (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:19581:29)
    at Object.pp$3.parseExprOps (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14750:19)
    at Object.pp$3.parseMaybeConditional (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14733:19)
    at Object.pp$3.parseMaybeAssign (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14701:19)
    at Object.pp$3.parseExpression (/Users/shein/kk/gh/uni5-upstream/node_modules/rollup/dist/shared/rollup.js:14667:19)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Before submitting the issue, please make sure you do the following

@Shinigami92 Shinigami92 changed the title Production Build Failed for Dynamtic Import of ?raw Files Production Build Failed for Dynamic Import of ?raw Files Apr 30, 2021
@leon-kfd
Copy link

leon-kfd commented Jul 12, 2021

Have same problem

"?raw" is not work on dynamic import in production mode, but it's work on dev mode.
image

The main code to load the file:
image

@RPDeshaies
Copy link

RPDeshaies commented Sep 11, 2021

I think there are two important factors here.

First, we should be able to trust that if our app works in dev, it should work in production build as well.

This bug is kind of an edge case, but also breaks this promise.

Second, this feature of using dynamic imports with markdown is an amazing tool when building an app based off folder based content a la NextJs or Astro but using Vite instead.

@haoqunjiang haoqunjiang added the inconsistency Inconsistency between dev & build label Sep 11, 2021
@nonzzz
Copy link

nonzzz commented Sep 12, 2021

Have a same problem .

image

In production . 'xxx?.raw' can't work correctly .
May it's can provide own plugin-dynamic-import-vars to fix the bug .

image

Waiting for a solution :-)

@Penguinlay
Copy link
Author

@sodatea is there anything any of us here can do to help the Vite team with this issue 😌 ?

You can submit a PR if you know the fix/enhancement for this issue/feature!

@bluwy
Copy link
Member

bluwy commented Feb 19, 2022

Fixed via #5545

@bluwy bluwy closed this as completed Feb 19, 2022
@github-actions github-actions bot locked and limited conversation to collaborators Mar 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
inconsistency Inconsistency between dev & build pending triage
Projects
None yet
Development

No branches or pull requests

6 participants