問(wèn)題表現(xiàn)[WHAT]
棒極了,我算是和android 5.1杠上了,這次又報(bào)出“Uxecpected token ...”的問(wèn)題,天地良心啊,我沒(méi)寫(xiě)過(guò)這么騷的代碼啊,不過(guò)有過(guò)上回的教訓(xùn),這次勉強(qiáng)算是“輕車(chē)熟路”了,是在vendor里報(bào)的錯(cuò),那就很可能是node_modules底下的問(wèn)題,找壓縮代碼,卻定位到vue.js的壓縮模塊里
nani the fuck?

黑人問(wèn)號(hào)
分析[WHY]
不對(duì)啊,之前不是能用嗎?不可能幾天內(nèi)vue版本換了吧?一查,沒(méi)換啊,等等,這vue.js的量前后對(duì)比有點(diǎn)不太對(duì)啊,哦,這個(gè)所謂的vue.js好像夾帶了我們自己的私貨啊,再看webpack.prod.js,可以看到如下配置:
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks(module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(path.join(__dirname, '../node_modules')) === 0
)
}
})
可以看到node_modules底下多次引入的js內(nèi)容會(huì)被打入vendor中,再看出錯(cuò)的附近的壓縮代碼內(nèi)容,依稀可以找到一點(diǎn)蛛絲馬跡:dom7,仿佛一下子觸發(fā)了我的記憶,想起了前幾天看到過(guò)的一篇文章
《假如測(cè)試說(shuō)你的網(wǎng)站在iOS 10有問(wèn)題》
emmm,是不是有swiper呢?在node_modules下還真有。而從打包后的vendor里來(lái)看這里用了es6里的...(擴(kuò)展運(yùn)算符),android 5.1當(dāng)然不認(rèn)了
再一問(wèn)同事,果然是之前加了swiper
解決方法[HOW]
當(dāng)然給出的文章里已經(jīng)寫(xiě)了解決方案了,但我這里用的vue-cli,稍稍不同,所以我這么改
// webpack.base.conf.js
// 在module.exports.module.rules中
{
test: /\.js$/,
loader: 'babel-loader',
include: [
resolve('node_modules/dom7'), // 添加的
resolve('node_modules/swiper'), // 添加的
resolve('src'),
resolve('test'),
resolve('node_modules/webpack-dev-server/client')
]
}
哎呀,可把我能壞了

滑稽