unplugin / unplugin-auto-import

Auto import APIs on-demand for Vite, Webpack and Rollup
MIT License
3.21k stars 195 forks source link

0.15.0 update produces EISDIR: illegal operation on a directory #333

Open Codermar opened 1 year ago

Codermar commented 1 year ago

Describe the bug

After upgrading to "unplugin-auto-import": "0.15.0" from 0.14.4 I am getting:

EISDIR: illegal operation on a directory (full log listed below)

The problem goes away by using 0.14.4 version

My project is based on the Vitesse Template with the SSG feature removed

[dev:client] 2023-02-27T18:01:47.559Z vite:esbuild init tsconfck (root: /usr/local/apple/okapi-admin-app-next)
[dev:client] 2023-02-27T18:01:47.813Z vite:esbuild init tsconfck end
[dev:client] 2023-02-27T18:01:47.813Z vite:esbuild init tsconfck end
[dev:client] 2023-02-27T18:01:47.815Z vite:config using resolved config: {
[dev:client]   server: {
[dev:client]     preTransformRequests: true,
[dev:client]     port: '8085',
[dev:client]     host: 'local.apple.com',
[dev:client]     strictPort: true,
[dev:client]     requestCert: true,
[dev:client]     fs: { strict: false, allow: [Array], deny: [Array] },
[dev:client]     https: { key: [Array], cert: [Array] },
[dev:client]     proxy: { '/api': [Object] },
[dev:client]     open: true,
[dev:client]     middlewareMode: false
[dev:client]   },
[dev:client]   resolve: {
[dev:client]     mainFields: [ 'module', 'jsnext:main', 'jsnext' ],
[dev:client]     browserField: true,
[dev:client]     conditions: [],
[dev:client]     extensions: [
[dev:client]       '.mjs',  '.js',
[dev:client]       '.mts',  '.ts',
[dev:client]       '.jsx',  '.tsx',
[dev:client]       '.json'
[dev:client]     ],
[dev:client]     dedupe: [ 'vue' ],
[dev:client]     preserveSymlinks: false,
[dev:client]     alias: [ [Object], [Object], [Object], [Object], [Object], [Object] ]
[dev:client]   },
[dev:client]   plugins: [
[dev:client]     'vite:pre-alias',
[dev:client]     'alias',
[dev:client]     'unplugin-icons',
[dev:client]     'vite-plugin-pages',
[dev:client]     'vite-plugin-vue-layouts',
[dev:client]     'unocss:transformers:pre',
[dev:client]     'unocss:global:content',
[dev:client]     'unocss:global',
[dev:client]     'vite-plugin-vue-markdown',
[dev:client]     'vite-plugin-pwa',
[dev:client]     'unplugin-vue-i18n',
[dev:client]     'vite-plugin-inspect',
[dev:client]     'vite:modulepreload-polyfill',
[dev:client]     'vite:optimized-deps',
[dev:client]     'vite:resolve',
[dev:client]     'vite:html-inline-proxy',
[dev:client]     'vite:css',
[dev:client]     'vite:esbuild',
[dev:client]     'vite:json',
[dev:client]     'vite:wasm-helper',
[dev:client]     'vite:worker',
[dev:client]     'vite:asset',
[dev:client]     'vite:vue',
[dev:client]     'unocss:config',
[dev:client]     'unocss:transformers:default',
[dev:client]     'unocss:devtools',
[dev:client]     'unocss:inspector',
[dev:client]     'vite-plugin-pwa:dev-sw',
[dev:client]     'vite:wasm-fallback',
[dev:client]     'vite:define',
[dev:client]     'vite:css-post',
[dev:client]     'vite:worker-import-meta-url',
[dev:client]     'vite:asset-import-meta-url',
[dev:client]     'vite:dynamic-import-vars',
[dev:client]     'vite:import-glob',
[dev:client]     'unplugin-auto-import',
[dev:client]     'unplugin-vue-components',
[dev:client]     'unocss:transformers:post',
[dev:client]     'unocss:global:post',
[dev:client]     'vite-plugin-pwa:info',
[dev:client]     'vite:client-inject',
[dev:client]     'vite:import-analysis'
[dev:client]   ],
[dev:client]   test: {
[dev:client]     globals: true,
[dev:client]     environment: 'jsdom',
[dev:client]     include: [ 'test/**/*.test.ts', 'src/**/*.test.*' ],
[dev:client]     deps: { inline: [Array] },
[dev:client]     reporters: [ 'verbose' ]
[dev:client]   },
[dev:client]   build: {
[dev:client]     target: 'esnext',
[dev:client]     cssTarget: 'esnext',
[dev:client]     outDir: 'dist',
[dev:client]     assetsDir: 'assets',
[dev:client]     assetsInlineLimit: 4096,
[dev:client]     cssCodeSplit: true,
[dev:client]     sourcemap: false,
[dev:client]     rollupOptions: {},
[dev:client]     minify: 'esbuild',
[dev:client]     terserOptions: {},
[dev:client]     write: true,
[dev:client]     emptyOutDir: null,
[dev:client]     copyPublicDir: true,
[dev:client]     manifest: false,
[dev:client]     lib: false,
[dev:client]     ssr: false,
[dev:client]     ssrManifest: false,
[dev:client]     ssrEmitAssets: false,
[dev:client]     reportCompressedSize: true,
[dev:client]     chunkSizeWarningLimit: 500,
[dev:client]     watch: null,
[dev:client]     commonjsOptions: { include: [Array], extensions: [Array] },
[dev:client]     dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] },
[dev:client]     modulePreload: { polyfill: true }
[dev:client]   },
[dev:client]   optimizeDeps: {
[dev:client]     disabled: 'build',
[dev:client]     force: undefined,
[dev:client]     esbuildOptions: { preserveSymlinks: false }
[dev:client]   },
[dev:client]   ssr: {
[dev:client]     format: 'esm',
[dev:client]     target: 'node',
[dev:client]     noExternal: [ 'workbox-window' ],
[dev:client]     external: [],
[dev:client]     optimizeDeps: { disabled: true, esbuildOptions: [Object] }
[dev:client]   },
[dev:client]   define: {
[dev:client]     __VUE_I18N_LEGACY_API__: false,
[dev:client]     __VUE_I18N_FULL_INSTALL__: true,
[dev:client]     __VUE_I18N_PROD_DEVTOOLS__: false,
[dev:client]     __VUE_OPTIONS_API__: true,
[dev:client]     __VUE_PROD_DEVTOOLS__: false
[dev:client]   },
[dev:client]   configFile: '/usr/local/apple/okapi-admin-app-next/vite.config.ts',
[dev:client]   configFileDependencies: [
[dev:client]     '/usr/local/apple/okapi-admin-app-next/vite.server.js',
[dev:client]     '/usr/local/apple/okapi-admin-app-next/icons.json',
[dev:client]     '/usr/local/apple/okapi-admin-app-next/vite.config.ts'
[dev:client]   ],
[dev:client]   inlineConfig: {
[dev:client]     root: undefined,
[dev:client]     base: undefined,
[dev:client]     mode: undefined,
[dev:client]     configFile: undefined,
[dev:client]     logLevel: undefined,
[dev:client]     clearScreen: undefined,
[dev:client]     optimizeDeps: { force: undefined },
[dev:client]     server: { open: true }
[dev:client]   },
[dev:client]   root: '/usr/local/apple/okapi-admin-app-next',
[dev:client]   base: '/',
[dev:client]   rawBase: '/',
[dev:client]   publicDir: '/usr/local/apple/okapi-admin-app-next/public',
[dev:client]   cacheDir: '/usr/local/apple/okapi-admin-app-next/node_modules/.vite',
[dev:client]   command: 'serve',
[dev:client]   mode: 'development',
[dev:client]   isWorker: false,
[dev:client]   mainConfig: null,
[dev:client]   isProduction: false,
[dev:client]   preview: {
[dev:client]     port: undefined,
[dev:client]     strictPort: true,
[dev:client]     host: 'local.apple.com',
[dev:client]     https: { key: [Array], cert: [Array] },
[dev:client]     open: true,
[dev:client]     proxy: { '/api': [Object] },
[dev:client]     cors: undefined,
[dev:client]     headers: undefined
[dev:client]   },
[dev:client]   env: {
[dev:client]     VITE_API_URL: 'https://local.apple.com:4000',
[dev:client]     VITE_API_SOURCE: 'mock',
[dev:client]     BASE_URL: '/',
[dev:client]     MODE: 'development',
[dev:client]     DEV: true,
[dev:client]     PROD: false
[dev:client]   },
[dev:client]   assetsInclude: [Function: assetsInclude],
[dev:client]   logger: {
[dev:client]     hasWarned: false,
[dev:client]     info: [Function: info],
[dev:client]     warn: [Function: warn],
[dev:client]     warnOnce: [Function: warnOnce],
[dev:client]     error: [Function: error],
[dev:client]     clearScreen: [Function: clearScreen],
[dev:client]     hasErrorLogged: [Function: hasErrorLogged]
[dev:client]   },
[dev:client]   packageCache: Map(0) {},
[dev:client]   createResolver: [Function: createResolver],
[dev:client]   worker: {
[dev:client]     format: 'iife',
[dev:client]     plugins: [
[dev:client]       'vite:pre-alias',
[dev:client]       'alias',
[dev:client]       'vite:modulepreload-polyfill',
[dev:client]       'vite:optimized-deps',
[dev:client]       'vite:resolve',
[dev:client]       'vite:html-inline-proxy',
[dev:client]       'vite:css',
[dev:client]       'vite:esbuild',
[dev:client]       'vite:json',
[dev:client]       'vite:wasm-helper',
[dev:client]       'vite:worker',
[dev:client]       'vite:asset',
[dev:client]       'vite:wasm-fallback',
[dev:client]       'vite:define',
[dev:client]       'vite:css-post',
[dev:client]       'vite:worker-import-meta-url',
[dev:client]       'vite:asset-import-meta-url',
[dev:client]       'vite:dynamic-import-vars',
[dev:client]       'vite:import-glob',
[dev:client]       'vite:client-inject',
[dev:client]       'vite:import-analysis'
[dev:client]     ],
[dev:client]     rollupOptions: {},
[dev:client]     getSortedPlugins: [Function: getSortedPlugins],
[dev:client]     getSortedPluginHooks: [Function: getSortedPluginHooks]
[dev:client]   },
[dev:client]   appType: 'spa',
[dev:client]   experimental: { importGlobRestoreExtension: false, hmrPartialAccept: false },
[dev:client]   getSortedPlugins: [Function: getSortedPlugins],
[dev:client]   getSortedPluginHooks: [Function: getSortedPluginHooks]
[dev:client] }
[dev:client] error when starting dev server:
[dev:client] Error: EISDIR: illegal operation on a directory, read

Reproduction

Vitesse Template with SSG feat removed

System Info

System:
    OS: macOS 13.2.1
    CPU: (10) arm64 Apple M1 Max
    Memory: 27.10 GB / 64.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.14.0 - ~/.nvm/versions/node/v18.14.0/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.3.1 - ~/.nvm/versions/node/v18.14.0/bin/npm
    Watchman: 2022.09.19.00 - /usr/local/bin/watchman
  Browsers:
    Chrome: 110.0.5481.177
    Chrome Canary: 113.0.5620.0
    Firefox: 110.0
    Safari: 16.3

Used Package Manager

npm

Validations

dpmango commented 1 year ago

Same here

[0] Error: EISDIR: illegal operation on a directory, read
[0] vite exited with code 1

Downgrade 0.14.4 helps to resolve start