在node环境中引入了一些包,用webpack打包后放在浏览器环境中,浏览器报错 require is not defined

这是因为 require 是node环境下的CommonJs,而 import 是浏览器环境下的ESModule。ESModule不认识require。
require 是node的一个私有的全局方法。

那就让打包出来的代码别有require,换句话说,webpack应该打包出一个适用于ES6环境下的代码。

只需在 webpack.config.js 中,将原来的 target: 'node' 改成 target: 'web' 即可。
webpack.config.js

export / export default + import ===》 ES6
module.exports / exports + require ===》 CommonJS

与原生的 URL 构造器 组合使用,在一个 JavaScript 模块中,通过相对路径我们就能得到一个被完整解析的静态资源 URL。否则代码将被原样保留,因而在 build.target 不支持 import.meta.url 时会导致运行时错误。在生产构建时,Vite 才会进行必要的转换(保证 URL 在打包和资源哈希后仍指向正确的地址)vite官网静态资源处理 new URL(url, import.meta.url)import.meta.url : ESM 的原生功能,会暴露当前模块的 URL。 按照网上搜到的 解决 方案在代码中加入两行代码(如下)后,产生。:需求为获取文件夹中的后缀为.vue的文件相对路径。的意思是匹配所有文件夹及里面的子文件夹,相当于。格式如下:如果想获得文件的相对路径,则用。用来查找文件内容的,在。方法实现导入资源,注意。 今天在应用 node.js 的时候突然 报错 了,之前一直是好的呢,费了九牛二虎之力终于搞明白了。 原来是node在升级之后,对 require 的使用方法发生了改变。从node.js 14版及以上版本中, require 作为COMMONJS的一个命令已不再直接支持使用,所以我们需要导入create Require 命令才可以。 所以在使用 require 的时候只需要加入以下代码就可以了: import { create Require } from 'module'; const require = create vue3,vite, 报错 解决 ,vue3+vite 报错 require is not defined ,vue3 vite引插件不识别 require ,老插件必须用 require 怎么办,vite项目插件要求使用 require 引入但 报错 ,vue3不兼容 require 导致第三方包插件无法使用,vue3 vite中使用 require 报错 怎么办, 解决 Vite+vue3使用第三方依赖 报错 require is not defined 问题 ,vite项目 require 语法兼容 问题 解决 require is not define <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initia.. ReferenceError: url is not defined ;ReferenceError: require is not defined in ES module scope, you can use import instead