v-viewer icon indicating copy to clipboard operation
v-viewer copied to clipboard

编译后出现 Uncaught SyntaxError: Unexpected token '...'

Open cnhuye opened this issue 1 year ago • 5 comments

esbuild 中配置了 pure, 移除了所有 console.log 后, 会出现错误信息:

Uncaught SyntaxError: Unexpected token '...'

找到原因,是因为这个文件 https://github.com/mirari/v-viewer/blob/v3/src/directive.ts 98行 log 方法里 console.log(...args), 被 esbuild 去除了 console.log 后, 代码变成了:

debug && ...args

有什么办法能解决这个问题呢?

cnhuye avatar Aug 05 '22 13:08 cnhuye

我认为这其实算是esbuild的pure组件bug,需要看下它的配置项是否允许例外,将node_modules排除

mirari avatar Aug 05 '22 14:08 mirari

我看到esbuild的issue有讨论类似问题,不过没有提到node_modules内部出现此类问题的情况,我空的时候去问下。你也可以找找是否有关闭pure配置以外的其他途径。 https://github.com/evanw/esbuild/issues/1879

mirari avatar Aug 05 '22 14:08 mirari

能提供下你的框架环境吗?我需要尝试复现这个问题。

mirari avatar Aug 08 '22 03:08 mirari

https://github.com/vbenjs/vue-vben-admin 用的这个框架. 他的 vite 配置里加了 esbuild.pure , 然后出现了这个问题。

如果用一个最小的 vue3+vite, 配置上 esbuild.pure 应该也可以复现。

cnhuye avatar Aug 08 '22 03:08 cnhuye

已提交issue,esbuild反馈是bug,之后会修复。 目前可以暂时关闭pure配置项,或者使用drop配置项来完全移除console.log,代价是console.error等方法也会移除。

drop: ['console', 'debugger'],

mirari avatar Aug 08 '22 13:08 mirari