vue出現(xiàn)Uncaught SyntaxError:Unexpected token問(wèn)題及解決
最近在做vue項(xiàng)目時(shí),需要引入一個(gè)第三方的js文件,在index.html中通過(guò)以下方式引入JS文件編譯后,就報(bào)了這個(gè)問(wèn)題。

根據(jù)廣大的網(wǎng)頁(yè)的思路,導(dǎo)致這一現(xiàn)象的原因可能有以下幾種:
原因一:引用文件的位置不正確
js文件放在static文件夾下和放在assets文件夾下的引用方式是不一樣的。
簡(jiǎn)而言之:
- 1.assets用來(lái)放置樣式、靜態(tài)圖片,只要src下面的組件中用到的資源就放在assets中。
- 2.static用來(lái)放沒(méi)有npm包的第三方插件,字體文件。
- 3.assets與components同級(jí) components下的.vue引用靜態(tài)文件時(shí),相對(duì)路徑為 ../assets/xxx/......
說(shuō)明:如果js文件中包含es6語(yǔ)法的話,就不可以放在static文件夾下,因?yàn)閟tatic文件夾默認(rèn)是不會(huì)被打包和編譯的,所以引用的時(shí)候會(huì)拋異常。
不同之處可以查看這篇:http://m.fzitv.net/javascript/320319g1q.htm
解決方法:
將src下的文件放到static下面去,在indec.html中的引用路徑采用相對(duì)路徑的表現(xiàn)形式,“./static/xxx/xxxxx.js”
原因二:配置信息不正確
如果你的js文件中包含es6語(yǔ)法,但沒(méi)有配置采用babel-loader來(lái)解析和轉(zhuǎn)化為es5語(yǔ)法的話,也會(huì)報(bào)這個(gè)錯(cuò)誤。
解決方法:
需要在webpack.config.js里配置loader,vue-cli是不會(huì)幫忙配置的。

然后重新編譯項(xiàng)目,就可以解決,當(dāng)然這個(gè)也沒(méi)有解決我的問(wèn)題。
原因三:script的引入類型不對(duì)
解決辦法:
將type="text/javascript"改為type="text/babel"
我嘗試了,不會(huì)再報(bào)以上錯(cuò)誤,但是我引入的JS文件中的內(nèi)容卻沒(méi)有編譯成功,里面的方法依然無(wú)法使用。
原因四:瀏覽器緩存問(wèn)題
有時(shí)候可能是由于瀏覽器有緩存,一直無(wú)法加載最新的內(nèi)容,所以當(dāng)你改了以后,依然沒(méi)有生效。
這種情況下,可以重新清除瀏覽器緩存,然后重新運(yùn)行項(xiàng)目,就可以解決。
原因五:配置問(wèn)題
1.在配置文件webpack.dev.config.js中,如存在以下內(nèi)容,直接注釋掉,這兩部分在文件中不是連在一起的,大家注意觀察。
const CopyWebpackPlugin = require('copy-webpack-plugin')
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.dev.assetsSubDirectory,
ignore: ['.*']
}
])2.然后,將這個(gè)變量的值改為,然后重新運(yùn)行,就對(duì)啦。
如果以上方法都不能解決的話,那我也無(wú)能為力了,這是我今天試過(guò)的所有方法,祝大家開(kāi)發(fā)順利。
contentBase:false
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)element-ui對(duì)話框可拖拽功能
這篇文章主要介紹了vue實(shí)現(xiàn)element-ui對(duì)話框可拖拽功能,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
Vue實(shí)現(xiàn)一個(gè)返回頂部backToTop組件
本篇文章主要介紹了Vue實(shí)現(xiàn)一個(gè)返回頂部backToTop組件,可以實(shí)現(xiàn)回到頂部效果,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
vue.js實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)響應(yīng) Vue.set的簡(jiǎn)單應(yīng)用
這篇文章主要介紹了vue.js實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)響應(yīng),Vue.set的簡(jiǎn)單應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
關(guān)于Nuxt的五種渲染模式的差異和使用場(chǎng)景全解析
這篇文章主要介紹了關(guān)于Nuxt的五種渲染模式的差異和使用場(chǎng)景全解析,在過(guò)去傳統(tǒng)開(kāi)發(fā)中,頁(yè)面渲染任務(wù)是由服務(wù)端完成的,那么Nuxt是如何渲染的呢,需要的朋友可以參考下2023-04-04
vue-cli的index.html中使用環(huán)境變量方式
這篇文章主要介紹了vue-cli的index.html中使用環(huán)境變量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
Vue自定義v-has指令實(shí)現(xiàn)按鈕權(quán)限判斷
這篇文章主要給大家介紹了關(guān)于Vue自定義v-has指令實(shí)現(xiàn)按鈕權(quán)限判斷的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

