解决vue vite启动项目报错ERROR: Unexpected “\x88“ in JSON 的问题

如果你在使用vue vite启动项目时遇到了JSON解析异常,有可能是因为项目依赖项中某个文件含有非utf-8编码的字符而导致的。

解决此问题的方法如下:

  1. 在项目的根路径下创建vite.config.js文件,如果该文件已存在则直接修改它,如果没有请参照以下示例内容创建该文件。
const { createServer } = require("vite");

// 导出一个 vite 插件对象
module.exports = {
  configureServer: async ({ app, watcher }) => {
    // 添加预处理钩子,用于在服务启动前进行处理
    watcher.add("**/*.jsx").on("change", async (path) => {
      const content = await fs.promises.readFile(path, "binary");
      const utf8Content = iconv.decode(Buffer.from(content, "binary"), "utf8");
      await fs.promises.writeFile(path, utf8Content);
    });
  },
};

如上配置文件示例所示,我们导出了一个 configureServer 方法,该方法中,watcher.add("**/*.jsx") CRUD 自动为我们监听指定文件类型的变更,每次有文件变更时,都会执行一个回调函数。回调函数的作用是将文件内容从某种二进制编码(比如gbk)转为utf-8,并写回到原始文件。

  1. 在该项目中安装iconv-lite依赖项,是一个纯JavaScript实现的「字符集编解码库」,用于将一种编码格式转换为另一种编码格式。安装方式,直接在终端或控制台输入以下命令:
yarn add iconv-lite
  1. 遗憾的是,我们无法很方便地得知哪些文件是导致项目启动失败的罪魁祸首,因此只能基于经验或借助第三方工具寻找准确的文件。

比如说,你可能会遇到src目录下的某些.vue 文件非utf-8编码,或者某些json等文件非utf-8编码,这些文件都有可能导致ERROR: Unexpected “\x88“ in JSON 的问题。具体的筛查流程可以参考一些常见的编辑器,如VS code,在文件下拉框中提供了文件编码格式的选择,你可以尝试查看一下报错文件的编码方式是否错误。

  1. 找到导致问题的文件后,根据第一步编写的代码解决问题,即修改该文件的编码组成,并写回到原文件。

总结:

通过上述步骤,我们可以解决vue-vite启动项目时遇到Unexpected “\x88“ in JSON 的问题。其中核心方案是通过vite的钩子机制,监听某种文件类型变更,然后自动将该文件的编码转换为utf-8,以期达到项目能正常启动的目的。当然,如果你的项目一开始就是utf-8编码,那么你可以跳过整个过程,直接启动项目。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决vue vite启动项目报错ERROR: Unexpected “\x88“ in JSON 的问题 - Python技术站

(1)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 详解Vue中localstorage和sessionstorage的使用

    详解Vue中localStorage和sessionStorage的使用 简介 对于一些 Vue.js 开发者来说,localStorage 和 sessionStorage 是存储数据的不错选择,本文将详细介绍这两个 API 的使用,同时说明如何在 Vue.js 组件中使用它们。 localStorage localStorage 是 Web Storag…

    Vue 2023年5月27日
    00
  • Vue之监听方法案例详解

    那么接下来我来详细讲解“Vue之监听方法案例详解”的完整攻略,包含以下几个方面的内容: 什么是监听方法 在Vue中,监听方法指的是在Vue实例中,通过使用watch属性或$watch方法来监测某些值的变化。当监测到这些值发生变化时,可以执行一些指定的操作。 何时使用监听方法 在开发过程中,经常需要实时监测某些变量或属性的值的变化,来做出对应的响应。比如,当数…

    Vue 2023年5月28日
    00
  • Vue路由管理器Vue-router的使用方法详解

    Vue路由管理器Vue-router的使用方法详解 一、Vue-router简介 Vue-router是Vue.js官方的路由管理器,它与Vue.js深度集成,可以方便地实现单页面应用程序(SPA)中的路由控制,同时支持多种路由解析模式,并提供了很多高级功能,如路由嵌套、路由参数、路由导航守卫等。 二、Vue-router的安装和配置 在使用Vue-rout…

    Vue 2023年5月27日
    00
  • Vue-cli打包后如何本地查看的操作

    当你使用Vue-cli进行前端开发时,你可以在本地使用devServer插件启动一个本地服务器进行开发调试,但是在打包完成后,你可能需要查看打包后的文件在本地的运行效果。下面我来分享一下如何在本地查看Vue-cli打包后的文件。 1. 打包Vue-cli应用 首先,你需要使用Vue-cli将你的应用进行打包。你可以使用以下命令进行打包: npm run bu…

    Vue 2023年5月27日
    00
  • JS实现的类似微信聊天效果示例

    JS实现的类似微信聊天效果示例,可以通过以下步骤来完成: 编写HTML结构 我们可以使用 标签来包裹聊天记录,每条聊天记录用 标签表示,聊天头像使用标签,聊天内容使用 标签表示。 示例代码: <ul id="chat-container"> <li class="chat-right"> &lt…

    Vue 2023年5月28日
    00
  • 使用async await 封装 axios的方法

    下面是使用async/await封装axios的方法的完整攻略: 1. 前置要求 在使用async/await封装axios之前,需要先了解以下内容: Promise机制 axios的基本使用方法和API async/await用法 2. 封装axios 封装axios的目的是为了方便在多个地方使用相同的网络请求配置和错误处理,避免重复书写。下面是一个简单的…

    Vue 2023年5月28日
    00
  • Vue使用Vuex一步步封装并使用store全过程

    下面来介绍一下Vue使用Vuex一步步封装并使用store的全过程。 1. 安装Vuex 首先需要安装Vuex,使用npm安装: npm install vuex –save 2. 创建store 在src下新建一个store文件夹,再在store文件夹内新建一个index.js文件,这个文件是该项目的Vuex配置,需要在里面创建store。 import…

    Vue 2023年5月28日
    00
  • 优雅地使用loading(推荐)

    优雅地使用loading(推荐) 在Web应用程序中,常常需要使用loading提示来增加用户体验,并为用户提供反馈信息。然而,如果loading的呈现不恰当,可能会让用户感觉烦躁、失去信心。因此,我们需要知道如何优雅地使用loading,尽可能减少其对用户的影响。 选择loading样式和位置 在使用loading时,样式和位置是很重要的。一般来说,loa…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部