histoire-dev / histoire

⚡ Fast and beautiful interactive component playgrounds, powered by Vite

Home Page:https://histoire.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nuxt plugin breaks when unimport contains `package` preset

Holi0317 opened this issue · comments

Describe the bug

With the following nuxt config:

  imports: {
    presets: [
      {
        package: 'lodash-es',
      },
    ],
  },

histoire will raise following exception in startup:

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "TypeError: p.from is undefined".] {
  code: 'ERR_UNHANDLED_REJECTION'
}

Should be caused by this line:

for (const appPreset of presets.filter(p => p.from.startsWith('#app'))) {

Where p.from is actually string | undefined, instead of string.

Reproduction

https://stackblitz.com/edit/histoire-nuxt3-starter-yscypa?file=nuxt.config.ts

System Info

System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.18.0 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.14.0 - /usr/local/bin/pnpm
  npmPackages:
    @histoire/plugin-nuxt: ^0.17.5 => 0.17.5 
    @histoire/plugin-vue: ^0.17.5 => 0.17.5 
    histoire: ^0.17.5 => 0.17.5

Used Package Manager

npm

Validations