a1067111756 / git-revision-vite-plugin

git revision for vite plugin
5 stars 1 forks source link

can`t use in project: "type": "module" #2

Closed tjyuanpeng closed 1 year ago

tjyuanpeng commented 2 years ago

if proejct is "type": "module" this plugin would be crash

// vite.config.ts

import GitRevisionVitePlugin from 'git-revision-vite-plugin'

plugins: [
    GitRevisionVitePlugin(),
]
failed to load config from xxx\vite.config.ts
error when starting dev server:
xxx\node_modules\.pnpm\git-revision-vite-plugin@0.0.9\node_modules\git-revision-vite-plugin\dist\git-revision-vite-plugin.es.js:129
export { GitRevisionVitePlugin as default, runGitDefineCommand };
^^^^^^

SyntaxError: Unexpected token 'export'
a1067111756 commented 2 years ago

可以提供一下你的vite的版本环境吗?我复现一下问题

tjyuanpeng commented 2 years ago

可以提供一下你的vite的版本环境吗?我复现一下问题

vite: 3.1.8

是不是对type: module的项目有兼容问题

以前一个非module项目使用这个插件是没问题的,vite 是 3.0.2

Shinigami92 commented 1 year ago

In the node_modules/git-revision-vite-plugin/dist/git-revision-vite-plugin.es.js file, there are require statements... so it is actually not a ES-module file.

These need to be import statements

I suggest using tsup

jinixx commented 1 year ago

Same problem.

a1067111756 commented 1 year ago

so sorry!!!

忙于工作没有关注到issue,没有及时的解决问题。

我测试了在type: module项目下确实会发生插件报错的问题,我已更新v0.0.11版本修复

统一回复以下bug原因:这个项目最早我使用的是vite lib模式进行打包,插件需要读取文件和执行命令使用了node的一些能力,eg: path、fs、child_process、require。另外我写法也存在一定问题,代码中既有import也有require, vite在打包时候并不会将node这些能力打包到ES-module,因为ES-module不支持。

当前解决方案是我抛弃了vite lib作为打包器(我发现它并不适用去打包vite插件,插件一般都会使用到node的能力去操作一些东西),转向使用rollup打包

Shinigami92 commented 1 year ago

Works fine now, thank you ❤️

(auto-translated) 现在工作正常,谢谢