webpack打包vue檔案時報錯`Unexpected token:`

肖老闆發表於2017-05-09

webpack打包vue檔案時報錯Unexpected token:

    master分支的程式碼編譯打包一直都正常的,今天上午將一個同事的分支合併後就一直編譯不過,走讀程式碼發現改動也比較少,也不涉及到package.json中外掛的更新,同時本地編譯也完全正常,那阿里雲CRP容器裡面怎麼會報錯呢!最開始報錯的地方是在UglifyJs裡面,錯誤提示是:cannot read property of undefined,然後是在一個foreach中丟擲來的,接著我就搜尋了前端程式碼裡面所有用到foreach的地方,都沒發現語法錯誤!最後仔細看了一下編譯輸錯,發現有幾個warning,存在版本不匹配的問題,就想著是不是先修復一下這些warning然後問題就可能會被解決掉呢。

   首先去修改UglifyJs的版本,改到跟本地的一樣,單獨通過npm install uglifyjs@^2.4.10安裝,結果編譯資訊提示webpack版本太低;就再通過npm install webpack@^2.2.0單獨安裝webpack;這時候又提醒我node版本不合適,一怒之下改成了最新的版本6.10.3,結果出現graceful-fs模組不支援的問題:

re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.

   然後只好將node版本修改為了5.11.1,再次編譯接著出現瞭如下的錯誤:

[INFO] ERROR in bundle-9f062a87cdcafb57be70.js from UglifyJs
[INFO] Unexpected token: operator (>) [bundle-9f062a87cdcafb57be70.js:16836,17]
[INFO] Set has success: 9f062a87cdcafb57be70

   解決這個問題的時候也走了一些彎路,自己先去修改了babel相關外掛的版本資訊,結果沒用,後來看到一哥們說需要單獨配置babel,將配置放到檔案.babelrc中:

{
    "presets": ["es2015"]
}

   然後就編譯通過順利構建好了映象,淚奔…..

相關文章