首页 > 其他分享 >vite 生产打包后报错 xx is not a constructor

vite 生产打包后报错 xx is not a constructor

时间:2024-01-17 14:55:49浏览次数:30  
标签:CSSOM CSSDocumentRule require CSSFontFaceRule parse xx 报错 vite

版本

  • vite: "^5.0.11"

解决方法

添加 optimizeDeps.disabled = falsebuild.commonjsOptions.include = []

vite.config.ts

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  build: {
    commonjsOptions: { include: [] },
  },
  optimizeDeps: {
    disabled: false,
  },
});

原因分析

这个问题大概从 vite3 就开始存在了,vite 使用 rollup 进行生产构建,在循环依赖等情况下,rollup 处理 commonjs 模块出现问题。我这里是引用了 cssom 出现的, 大概是 cssom parse.js 文件末尾动态导入其他模块导致的,parse.js 顶部其他部分代码有使用结尾导入的这些模块。

// ....

//.CommonJS
exports.parse = CSSOM.parse;
// The following modules cannot be included sooner due to the mutual dependency with parse.js
CSSOM.CSSStyleSheet = require("./CSSStyleSheet").CSSStyleSheet;
CSSOM.CSSStyleRule = require("./CSSStyleRule").CSSStyleRule;
CSSOM.CSSImportRule = require("./CSSImportRule").CSSImportRule;
CSSOM.CSSGroupingRule = require("./CSSGroupingRule").CSSGroupingRule;
CSSOM.CSSMediaRule = require("./CSSMediaRule").CSSMediaRule;
CSSOM.CSSConditionRule = require("./CSSConditionRule").CSSConditionRule;
CSSOM.CSSSupportsRule = require("./CSSSupportsRule").CSSSupportsRule;
CSSOM.CSSFontFaceRule = require("./CSSFontFaceRule").CSSFontFaceRule;
CSSOM.CSSHostRule = require("./CSSHostRule").CSSHostRule;
CSSOM.CSSStyleDeclaration = require('./CSSStyleDeclaration').CSSStyleDeclaration;
CSSOM.CSSKeyframeRule = require('./CSSKeyframeRule').CSSKeyframeRule;
CSSOM.CSSKeyframesRule = require('./CSSKeyframesRule').CSSKeyframesRule;
CSSOM.CSSValueExpression = require('./CSSValueExpression').CSSValueExpression;
CSSOM.CSSDocumentRule = require('./CSSDocumentRule').CSSDocumentRule;
///CommonJS

参考资料

标签:CSSOM,CSSDocumentRule,require,CSSFontFaceRule,parse,xx,报错,vite
From: https://www.cnblogs.com/guangzan/p/17969989

相关文章

  • systemtap首次运行.stp时奇怪报错解决
    一句话:更换合适版本。不管是源码编译还是直接安装的预编译包,版本必须与你的kernel匹配,不然就是一堆奇怪的报错,正面去解决是不可能的。 你可能会遇到这些编译输出:----------------------------------------------------------------------------------------------------------......
  • python 连接mysql 报错 打包 报错
    mysql.connector.connect(auth_plugin='mysql_native_password',host=lis[0],database=lis[1],user=lis[2],password=lis[3])auth_plugin='mysql_native_password'Python连接MySQL报错:mysql.connector.errors.NotSupportedError:Authenticationplugin......
  • 关于提交git出现“lint-staged“报错
    因为提交推送前会触发pre-commit勾子,由于代码出现不规范被检测到所以禁止提交,如果想取消这个提交前校验可以卸载掉husky,这里以npm为例输入命令:npm  uninstallhusky--save其他两种解决办法:1:进入项目的.git文件夹这个文件夹默认为隐藏的,可先设置显示,再进入hooks文件夹,删除pre......
  • jenkins启动报错:Failed Loading global config
    jenkins启动报错:FailedLoadingglobalconfig 问题起因:想在构建项目中使用复选框(ExtendedChoiceParameter),需要安装ExtendedChoiceParameter插件,但是因为版本过低的原因,导致插件无法正常安装。然后根据提示,就在jenkins的web页面进行了自动升级。但是在升级过程中......
  • git pull 报错:ssh: connect to host github.com port 22: Connection timed out
    在执行gitpull时提示错误:ssh:connecttohostgithub.comport22:Connectiontimedout解决方案:添加config文件vim~/.ssh/config添加如下内容Hostgithub.comHostnamessh.github.comPort443ssh:connecttohostgithub.comport22:Connectionti......
  • 使用zipFile读取文件时遇到的问题及解决(KeyError: "There is no item named 'xxx' in
    问题描述在Windows上跑一段代码时,遇到如下问题:KeyError:"Thereisnoitemnamed'CDR_Data\\\\CDR.Corpus.v010516\\\\CDR_DevelopmentSet.PubTator.txt'inthearchive"原因分析这是一段Python代码,代码中使用到了zipfile库,它首先创建了一个ZipFile对象,然后在调用read()......
  • 【Vue】vite+vue3 如何实现点击进入详情页/文章页
    如上图,点击标题可以进入详情页,关键代码截图如下:然后去配置路由那么组件如何从地址中接收参数呢......
  • Elasticsearch索引不存在时,查询接口报错怎么办?
    1、索引不存在,报错:type=index_not_found_exception,reason=nosuchindex解决办法:DSL:GET/text_index_003/_search?ignore_unavailable=truejava代码:NativeSearchQuerysearchQuery=newNativeSearchQueryBuilder().withIndicesOptions(IndicesOpti......
  • vscode报错Pylance client: couldn‘t create connection to server.解决
    问题描述:一打开vscode,右下角就弹报错,Pylanceclient:couldn’tcreateconnectiontoserver.,让我打开output,打开后似乎是在说连不上server因为连不上server,所以我的python代码没法解析,尝试重开vscode也没用问题解决:点开左侧的拓展,找到PythonExtensionPack,这就是解析python代......
  • git 提交报错
    这个问题是因为当你在终端输入gitcommit-m“XXX”,提交代码的时候,pre-commit(客户端)钩子,它会在Git键入提交信息前运行做代码风格检查。如果代码不符合相应规则,则报错,而它的检测规则就是根据.git/hooks/pre-commit文件里面的相关定义。解决方法(三种)1、第一种卸载husky。只要......