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

yizhihongxing

如果你在使用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技术站

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

相关文章

  • 移动端调试神器vConsole使用详解

    我们来详细介绍一下“移动端调试神器vConsole使用详解”的完整攻略。 一、vConsole是什么? vConsole是一款专为移动端开发者设计的前端调试工具。它可以在移动端页面中弹出一个虚拟的控制台,帮助开发者方便地查看页面的错误信息,进行调试和测试。 二、使用vConsole 2.1 引入vConsole 在head标签中引入vConsole的css,…

    Vue 2023年5月27日
    00
  • Vue组件实现原理详细分析

    当我们使用Vue.js构建web应用时,组件是不可或缺的一个部分。Vue组件的实现原理涉及到Vue实例、组件注册、组件渲染以及组件通信等方面,本文将就这些方面对Vue组件实现原理进行详细分析。 1. Vue实例与组件的关系 Vue组件其实就是Vue实例,通过new Vue()创建出来的实例就是根实例,在这个实例内部,可以通过组件注册、组件引用、属性继承等方式…

    Vue 2023年5月28日
    00
  • Vue 路由传参加密的示例代码

    下面我将详细讲解“Vue 路由传参加密的示例代码”的完整攻略。 1. 添加 crypto-js 库 首先我们需要引入一个加密解密库:crypto-js。可以使用 npm 或者通过 CDN 引入。 <!– 通过 CDN 引入 –> <script src="https://cdn.bootcdn.net/ajax/libs/cr…

    Vue 2023年5月27日
    00
  • 保姆级Vue3开发教程分享

    保姆级Vue3开发教程分享 Vue3 是最新的 Vue.js 版本,它实现了很多值得注意的新特性,包括 Composition API、Teleport、Suspense 等。本教程将详细讲解 Vue3 的开发流程。 安装 Vue3 安装 Vue3 的方法是使用 npm。打开命令行界面并输入以下命令: npm install vue@next 创建 Vue3…

    Vue 2023年5月28日
    00
  • uni-app微信小程序使用echarts的详细图文教程

    针对“uni-app微信小程序使用echarts的详细图文教程”,我给出下面的攻略: uni-app微信小程序使用echarts的详细图文教程 前言 uni-app是一个跨平台开发框架,可使用一套代码快速开发出各种应用,包括微信小程序。而echarts则是一款强大的可视化图表库,支持多种图表类型,且功能丰富。将它们结合使用,可以快速的实现数据可视化,提高用户…

    Vue 2023年5月27日
    00
  • Vue检测屏幕变化来改变不同的charts样式实例

    下面是Vue检测屏幕变化来改变不同的charts样式的完整攻略: 1. 为什么需要检测屏幕变化 在现代的多种设备上,不同的屏幕尺寸和分辨率会影响到页面的显示和交互,特别是在数据可视化的场景中,如何适应不同屏幕呈现不同的样式和呈现方式是一个关键的问题。而Vue作为流行的MVVM框架,提供了一种简单但强大的方式来监测屏幕变化并对相应的变化进行处理。 2. 使用V…

    Vue 2023年5月28日
    00
  • 创建nuxt.js项目流程图解

    下面是创建nuxt.js项目的流程图解及攻略: 1. 创建新项目 首先,我们需要安装npx(npm 5.2+自带),并使用npx命令创建新项目。具体步骤如下: 打开命令行工具(Windows:cmd或PowerShell;Mac/Linux:Terminal)。 运行以下命令来安装npx: npm install -g npx 运行以下命令来创建新项目: n…

    Vue 2023年5月27日
    00
  • Vue.Draggable使用文档超详细总结

    Vue.draggable使用文档超详细总结 介绍 Vue.draggable是一个基于Sortable.js实现的Vue.js拖放库。它允许您在应用程序中轻松创建可拖放的UI组件,同时提供许多配置选项,使您能够自定义拖动行为。以下是Vue.draggable提供的主要功能: 支持嵌套列表和树形结构 支持拖放元素并在不同列表之间排序 支持组件自定义渲染以及自…

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