解決Vue運算符報錯:Syntax Error: Unexpected token問題
簡介
說明
本文介紹Vue項目中...(三點運算符)的“Syntax Error: Unexpected token”報錯的解決方法。
(當(dāng)然,其他項目中類似的問題解決方案也類似)。
報錯的原因
...(三點運算符)是ES6的新特性,Webpack無法解析,所以會報這個錯誤。
項目里雖然已經(jīng)引入了babel,但需要配置一下才能解決此問題。
問題復(fù)現(xiàn)
本處我是在使用Vuex的...mapState時遇到的。
babel依賴 (vue-cli腳手架默認(rèn)的依賴)
配置文件:package.json

webpack的babel配置(vue-cli腳手架默認(rèn)的配置)
配置文件:webpack.base.conf.js

代碼
<template>
<div class="container">
<h3>ComponentB</h3>
<div>計數(shù)器的值:{{ count }}</div>
<div>計數(shù)器的2倍:{{ doubleCount }}</div>
</div>
</template>
<script>
import {mapState, mapGetters} from 'vuex'
export default {
computed: {
...mapState('module1', ['count', 'info']),
...mapGetters('module1', ['doubleCount'])
}
}
</script>
<style scoped>
.container {
margin: 20px;
border: 2px solid blue;
padding: 20px;
}
</style>報錯信息

解決方案
方案1:.babelrc(配置presets)(推薦)
方案介紹
配置文件:項目根目錄/.babelrc (如果沒有,則新建此文件)
改為如下配置:
{
"presets": [
"stage-2"
]
}第三方庫問題
如果自己引入的第三方庫中存在擴(kuò)展運算符,就需要在 webpack.base.conf.js 中添加 resolve('第三方庫的路徑')。
module:{
rules:[
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client'), resolve('第三方庫的路徑')]
}
]
}方案2:.babelrc(配置presets和plugins)
本方法不能解決第三方庫的...運算符問題,不推薦使用。
方案介紹
配置文件:項目根目錄/.babelrc (如果沒有,則新建此文件)
{
"presets": [
["env", {
"modules": false
}],
"stage-2"
],
"plugins": ["transform-runtime", "transform-vue-jsx"]
}第三方依賴的問題
若項目里其他依賴中存在...擴(kuò)展運算符,必須在 webpack.base.conf.js 中添加 resolve('第三方依賴的路徑')。
module:{
rules:[
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client'), resolve('第三方庫的路徑')]
}
]
}此時運行會報錯

方案3:依賴+.babelrc
此法比較麻煩,不推薦。
方案說明
手動加入babel-preset-es2015 依賴和babel-plugin-transform-object-rest-spread依賴,然后配置 .babelrc。
配置文件:項目根目錄/.babelrc (如果沒有,則新建此文件)
{
"presets": [
[
"env",
{
"modules": false,
"targets": {
"browsers": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
}
],
"stage-2",
[
"es2015",
{
"modules": false
}
]
],
"plugins": [
"transform-object-rest-spread"
]
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue2使用el-date-picker實現(xiàn)動態(tài)日期范圍demo
這篇文章主要為大家介紹了vue2使用el-date-picker實現(xiàn)動態(tài)日期范圍示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Vue3前端與Python(Django)后端接口簡單代碼示例
這篇文章主要介紹了如何使用Django創(chuàng)建項目和應(yīng)用,配置跨域訪問,并編寫視圖和API,同時還講述了如何使用Vue3創(chuàng)建項目,編寫組件調(diào)用后端API,需要的朋友可以參考下2025-01-01

