CyberNika / v-contextmenu

🖱 ContextMenu based on Vue 3 & Vue 2
https://cybernika.github.io/v-contextmenu/
MIT License
918 stars 112 forks source link

2.9.0版本使用webpack 3.x 打包失败 #78

Open watertreestar opened 4 years ago

watertreestar commented 4 years ago

问题描述

2.9.0版本使用webpack打包时会出现问题,在使用Ugilfy压缩的时候会报Unexpected token: punc ,根据错误提示显示的文件,查找原因后,发现打包后的代码中依然包含es6的语法。

我的babel配置文件.babelrc

{
    "presets": ["stage-3", "env"],
    "plugins": ["transform-runtime", "syntax-dynamic-import"],
    "comments": false,
    "compact": false
}

问题查找

最后查看代码找到是一段v-contextmenu相关的代码,到node_modules查看包v-contextmenudist文件中的代码依然是es6,因为babel转换已经排除了node_modules,所以这里的es6语法没有得到转换。而webpack.optimize.UglifyJsPlugin不识别es6的语法,导致出错。

How to resolve?

使用了低版本的2.8.0就打包成功

环境说明

一开始根据UglifyJSPlugin的错误提示去排查问题一直没有解决,根据网上的方案也没有找到,最简单的解决方案就是把UglifyPlugin去掉,这样就不会出错,而且打包还很快。不过这不是解决的根本方法