【Exception】Error: Dynamic require of “path“ is not supported

news/2025/2/23 6:17:31

Talk is cheap, show me the code.

环境 | Environment

kversion
OSwindows 11
Node.jsv18.14.2
npm9.5.0
vite5.0.0
vue3.3.8

报错日志 | Error log

>npm run dev

> app1@0.0.0 dev
> vite


 ERROR  failed to load config from C:\code\frontend\app1\vite.config.js                22:01:42  


 ERROR  error when starting dev server:                                                                                    22:01:42  
Error: Dynamic require of "path" is not supported
    at file:///C:/code/frontend/app1/vite.config.js.timestamp-1700661702409-1225e92edb929.mjs:6:9    at file:///C:/code/frontend/app1/vite.config.js.timestamp-1700661702409-1225e92edb929.mjs:14:12
    at ModuleJob.run (node:internal/modules/esm/module_job:194:25)

vite.config.js

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { createHtmlPlugin } from 'vite-plugin-html'

const path = require('path')

// 为了在index.html中使用环境变量
const getViteEnv = (mode, target) => {
  return loadEnv(mode, process.cwd())[target];
};

// https://vitejs.dev/config/
export default ({ mode }) =>
  defineConfig({
    plugins: [
      vue(),
      createHtmlPlugin({
        inject: {
          data: {
            //将环境变量 VITE_APP_TITLE 赋值给 title 方便 html页面使用 title 获取系统标题
            title: getViteEnv(mode, "VITE_APP_TITLE"),
          },
        },
      }),
    ],
    resolve: {
      alias: {
        '@': path.resolve(__dirname, "./src")
      }
    },
  })

原因分析 | Analysis

  1. VITE v5.0.0不支持require()

解决方案 | Solution

const path = require('path')改为import path from 'path'

参考 | References

简书 - vite项目中出现的错误Error: Dynamic require of “path” is not supported


http://www.niftyadmin.cn/n/5204673.html

相关文章

数字化转型过程中的RPA+X与RPA+B

当前,RPA已成为企业数字转型初始阶段里最受欢迎的自动化解决方案,越来越多的企业开始引入RPA来协助员工,开展各类业务场景的自动化应用。很多企业也都将RPA列为重要流程优化技术,不少公司甚至直接放弃了传统的IT自动化方案&#x…

【电子通识】USB3.0和USB2.0有什么区别?

版本 USB2.0是2000年4月27日由USB-IF组织提出了USB2.0总线协议规范。 USB3.0是2008年11月17日由USB-IF组织提出了超高速USB3.0规范。 图标对比 USB2.0的标志就是和USB1.1的标志基本上没啥区别,还是以前的那个样子,使用黑色颜色用标识 USB3.0它有一个S…

QT 搭建opencv 环境

1. 准备工具CMake 一、CMake介绍 CMake是一个被广泛使用的、开源免费并且完全跨平台的构建工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C特性,类似UNIX下的aut…

每天一道算法题(十一)——滑动窗口最大值_困难(中等)

文章目录 1、问题2、示例3、解决方法(1)方法1——双指针 总结 1、问题 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗…

模拟shell小程序

接下来利用我们当前的知识,撰写一个简单的shell外壳程序。 1.shell原理 shell的原理是实际上就是运行了一个父进程,然后创建出子进程,最后使用进程替换调用,替换成其他程序。 2.shell实现 2.1.死循环 首先一个shell一旦运行起…

【资深硬件工程师总结-千兆以太网设计指南】

文章目录 01通用PCB布线指南02标志焊盘中的接地过孔区示例03EMI注意事项04ESD注意事项 资深硬件工程师总结-千兆以太网设计指南 本应用笔记旨在帮助客户使用Microchip的10/100/1000 Mbps以太网器件系列设计PCB。本文档提供有关PCB布线的建 议, PCB 布线是保持信号完…

第十一章 目标检测中的NMS(工具)

精度提升 众所周知,非极大值抑制NMS是目标检测常用的后处理算法,用于剔除冗余检测框,本文将对可以提升精度的各种NMS方法及其变体进行阶段性总结。 总体概要: 对NMS进行分类,大致可分为以下六种,这里是依…

编程语言发展史:汇编语言的出现和发展

一、汇编语言的出现 随着计算机硬件的发展,机器语言变得越来越复杂,难以被人类程序员理解和编写。因此,出现了更高级别的编程语言,这些语言使用类似英语的语法,使程序员能够更容易地编写和维护程序。 其中一种高级语…