首先說說我的問題
我在vue項(xiàng)目(vue-cli+webpack構(gòu)建的)里使用了vue的圖片預(yù)覽插件vue-picture-preview氓英,dev的時(shí)候沒問題,打包的時(shí)候就報(bào)錯(cuò):ERROR in static/js/vendor.9ccaa23ecd84cd1550b5.js from UglifyJs
Unexpected token: punc (() [./node_modules/_vue-picture-preview@0.0.1@vue-picture-preview/index.js:7,0][static/js/vendor.9ccaa23ecd84cd1550b5.js:124,16]
首先鹦筹,我們來看下報(bào)錯(cuò)信息:
報(bào)錯(cuò)信息說有個(gè)錯(cuò)誤在打包后的文件vendor.6511c23cf24d51177823.js中
錯(cuò)誤原因:Unexpected token: punc (()铝阐,即不能識(shí)別標(biāo)點(diǎn)‘(’,
源文件出錯(cuò)的地方:/node_modules/_vue-picture-preview@0.0.1@vue-picture-preview/index.js:7,0,第2行铐拐,0列
打包文件出錯(cuò)的地方:static/js/vendor.9ccaa23ecd84cd1550b5.js:124,16徘键,第124行练对,16列
把兩個(gè)文件打開,找到報(bào)錯(cuò)的位置吹害,發(fā)現(xiàn)代碼一模一樣
源代碼:vue-picture-preview@0.0.1@vue-picture-preview/index.js
打包后的: vendor.9ccaa23ecd84cd1550b5.js
上面的代碼是es6的語法螟凭,由于現(xiàn)在還有瀏覽器不支持es6的語法,所以在打包的過程中要把es6轉(zhuǎn)換成es5,在打包時(shí)使用了UglifyJs壓縮JS它呀,但是UglifyJs無法解析ES6螺男,才出現(xiàn)了上述問題,
我用的是webpack打包的纵穿,解決問題的辦法如下:
修改webpack的配置文件:webpack.base.conf.js
修改前:
修改后:
我用紅色框框標(biāo)出來的地方和報(bào)錯(cuò)的源文件路徑保持一致下隧,別想當(dāng)然的寫成:‘node_modules/vue_pictrue_preview/index.js’,我就犯了這樣的錯(cuò)誤谓媒,把自己坑的不要不要的淆院,這樣修改后打包就不會(huì)出錯(cuò)了。
當(dāng)你引入其他的第三方的庫的時(shí)候句惯,如果引入的庫有es6的語法土辩,也這樣改就可以了,
希望對(duì)大家有幫助G酪啊?教浴!