美文网首页
Unexpected token . SyntaxError:

Unexpected token . SyntaxError:

作者: myjourney | 来源:发表于2024-05-16 16:37 被阅读0次

    现象:页面在安卓10以下的系统显示不出来。
    控制台打印显示:

    Uncaught runtimeerrors:
    
    ERROR
    
    Unexpected token . SyntaxError: Unexpected token
    
    at
    
    Object../node modules/unplugin/dist/unpluginName=unplugin-vue-
    
    components!./node modules/unplugin/dunpluginName=unplugin-auto.import!./node modules/babel.loader/lib/index.js??clonedRuleSet-40.use[0]!./node modules/vue.loader/dist/index.js??ruleSet[0].use[0]!./src/views/chat/¡vue&type=script&setup=true&lang=js
    
    ([http://192.168.121.150:8080/js/app](http://192.168.121.150:8080/js/app)
    
    at webpack require([http://192.168.121.150:8080/js/app](http://192.168.121.150:8080/js/app)
    
    at webpack require([http://192.168.121.150:8080/js/app](http://192.168.121.150:8080/js/app).
    
    at fn([http://192.168.121.150:8080/js/app](http://192.168.121.150:8080/js/app)
    
    at eval(webpack-internal:///./src/views/chat/index.vvue&type=script&setup=true&lang=js:6
    
    at
    
    Function.webpack require([http://192.168.121.150:8080/js/app](http://192.168.121.150:8080/js/app).
    
    at eval(webpack-internal:///./src/views/chat/index.vvue&type=script&setup=true&lang=js:1
    
    at
    
    Module../src/views/chat/index.vue?vue&type=script&setup=true&lang=js
    
    ([http://192.168.121.150:8080/js/app](http://192.168.121.150:8080/js/app)
    
    atwebpack require([http://192.168.121.150:8080/js/app](http://192.168.121.150:8080/js/app).
    
    at fn
    
    ([http://192.168.121.150:8080/js/appat](http://192.168.121.150:8080/js/appat)
    
    at eval(webpack-ternal:///./src/views/chat/index.vue:4:10
    

    如果这个问题只在Android 10及以下的系统上出现,那么可能的原因是这些系统上的浏览器不支持某些较新的JavaScript语法特性。这种情况下,通常需要确保代码被适当地转译(transpile)以兼容旧版本的JavaScript引擎。

    1、检查Babel配置

    确保你的项目中使用了Babel,并且配置了适当的presets,如@babel/preset-env。这个preset可以根据目标浏览器的环境来转译代码。
    确保.browserslistrc文件或package.json中的browserslist字段配置了正确的目标浏览器范围,包括Android 10及以下的浏览器。

    • 更新browserslist配置:(package.json),新增了"Android >= 4.4.4",
     "browserslist": [
        "> 1%",
        "last 2 versions",
        "not dead",
        "Android >= 4.4.4",
        "not ie 11"
      ]
    

    2 安装并使用core-js和@babel/preset-env
    如果你还没有安装core-js,你应该安装它,因为它包含了必要的polyfills。然后,你可以在babel.config.js中显式地设置@babel/preset-env预设,并指定你想要使用的core-js版本:

    npm install --save core-js@3
    npm install --save-dev @babel/preset-env
    

    (babel.config.js文件)

    module.exports = {
      presets: [
        [
          '@babel/preset-env',
          {
            useBuiltIns: 'usage',
            corejs: 3, // 指定core-js版本
          },
        ],
        '@vue/cli-plugin-babel/preset',
      ],
    };
    

    这里的useBuiltIns: 'usage'选项会告诉Babel按需自动引入所需的polyfills。

    指定core-js的版本为3是因为core-js有几个主要版本,每个版本都有不同的特性和bug修复。截至2023年4月,core-js的版本3是最新的稳定版本,它包含了最全面的ECMAScript标准库的polyfills,包括ES5、ES6/ES2015、ES2016、ES2017、ES2018、ES2019、ES2020及之后标准的新特性。

    当你使用@babel/preset-env时,你可以指定core-js的版本来确保Babel使用正确的polyfills版本。如果你不指定版本,Babel可能不会使用polyfills,或者使用的是默认的、可能不是最新的版本。

    3 清除缓存:
    修改配置后,你可能需要清除旧的构建缓存。Vue CLI有时会缓存旧的构建结果,这可能会阻止新的配置生效。

    npm run serve -- --reset-cache
    # 或者
    vue-cli-service serve --reset-cache
    

    4 重新安装node_modules:
    有时候,node_modules目录中的依赖可能会出现问题。你可以尝试删除node_modules目录和package-lock.json文件,然后重新运行npm install来安装依赖。

    相关文章

      网友评论

          本文标题:Unexpected token . SyntaxError:

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