unplugin-auto-import
unplugin-auto-import copied to clipboard
If imports receives a two-dimensional array object format implemented as a function, it will report a type error.
Describe the bug
code:
/src/plugins/lodash
import lodash from 'lodash'
export function lodashImports() {
const exports = Object.keys(lodash).map(v => [v, `use${lodash.upperFirst(v)}`])
return {
lodash: exports,
}
}
/vite.config.ts
import { lodashImports } from './src/plugins/lodash'
...
export default defineConfig({
plugins: [
AutoImport({ imports: [lodashImports()] })
]
})
Reproduction
https://stackblitz.com/edit/vitejs-vite-bljbqc?file=vite.config.ts
System Info
System:
OS: macOS 14.0
CPU: (8) arm64 Apple M1 Pro
Memory: 284.13 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 18.19.0 - ~/.volta/tools/image/node/18.19.0/bin/node
npm: 10.2.3 - ~/.volta/tools/image/node/18.19.0/bin/npm
pnpm: 8.10.2 - ~/.volta/tools/image/pnpm/8.10.2/bin/pnpm
bun: 1.0.11 - ~/.bun/bin/bun
Browsers:
Chrome: 123.0.6312.124
Safari: 17.0
Used Package Manager
pnpm
Validations
- [X] Follow our Code of Conduct
- [X] Read the Contributing Guide.
- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- [X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
- [X] The provided reproduction is a minimal reproducible of the bug.
It seems like this might be the expected behavior. Refer to the type definition.
You can try using it like this:
export function lodashImports() {
const exports = Object.keys(lodash).map(v => `use${lodash.upperFirst(v)}`)
return {
lodash: exports,
}
}