美文网首页
android 5.1及以下webview报Uxecpected

android 5.1及以下webview报Uxecpected

作者: jijiwuming | 来源:发表于2018-06-01 15:23 被阅读0次

    问题表现[WHAT]

    棒极了,我算是和android 5.1杠上了,这次又报出“Uxecpected token ...”的问题,天地良心啊,我没写过这么骚的代码啊,不过有过上回的教训,这次勉强算是“轻车熟路”了,是在vendor里报的错,那就很可能是node_modules底下的问题,找压缩代码,却定位到vue.js的压缩模块里
    nani the fuck?

    黑人问号

    分析[WHY]

    不对啊,之前不是能用吗?不可能几天内vue版本换了吧?一查,没换啊,等等,这vue.js的量前后对比有点不太对啊,哦,这个所谓的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内容会被打入vendor中,再看出错的附近的压缩代码内容,依稀可以找到一点蛛丝马迹:dom7,仿佛一下子触发了我的记忆,想起了前几天看到过的一篇文章

    《假如测试说你的网站在iOS 10有问题》

    emmm,是不是有swiper呢?在node_modules下还真有。而从打包后的vendor里来看这里用了es6里的...(扩展运算符),android 5.1当然不认了
    再一问同事,果然是之前加了swiper

    解决方法[HOW]

    当然给出的文章里已经写了解决方案了,但我这里用的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')
            ]
          }
    

    哎呀,可把我能坏了


    滑稽

    相关文章

      网友评论

          本文标题:android 5.1及以下webview报Uxecpected

          本文链接:https://www.haomeiwen.com/subject/jjqksftx.html