onebay / vite-plugin-imp

A vite plugin for import library component style automatic.
MIT License
231 stars 24 forks source link

Cannot work with vite.config.ts #44

Closed richex-cn closed 2 years ago

richex-cn commented 2 years ago

TS 的定义和实际的 JS 输出不一致,当我在 vite.config.ts 中使用时,只能通过 vitePluginImp.default 配合 @ts-ignore 使用。

Reproduce: https://stackblitz.com/edit/vitejs-vite-wkqurd?file=vite.config.ts

目前我只能这样用:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vitePluginImp from 'vite-plugin-imp'

export default defineConfig(({ mode }) => {
  const IS_DEV = mode === 'development'

  return {
    plugins: [
      vue(),
      // @ts-ignore: conflicting type define with default export
      vitePluginImp.default({})
    ]
  }
})
psaren commented 2 years ago

你删掉package.json中的type: "module"试试

https://stackblitz.com/edit/vitejs-vite-npecb7?file=package.json

richex-cn commented 2 years ago

你删掉package.json中的type: "module"试试

删掉之后可以正常工作了,非常感谢!

考虑到未来会有越来越多项目使用 ESM,是否可以在这个项目中兼容一下?例如 vite 在 3.x 开始已经全面开启 ESM,参考 https://github.com/vitejs/vite/pull/8251

@psaren

psaren commented 2 years ago

下个版本会兼容

richex-cn commented 2 years ago

Awesome! Thanks!