美文网首页
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