mini-css-extract-plugin TypeError: $ is not a function 问题解决

问题

mini-css-extract-plugin 在抽取 css 的时候,发现了调用不了的 $

ERROR in ‘./index.css’
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
TypeError: $ is not a function

其根本原因是,你使用了 babel 相关的 polyfill,比如 @babel/preset-envuseBuiltIns: 'usage'

由于 css-loader 是异步 callback 的,在 mini-css-extract-plugin 还没作用于 css 的时候,css-loader 把 css 提取到 js 模块中,被 babel 的 polyfill 处理包裹了,产生了无法调用的 $

解决

排除 css-loader 被 babel 的处理:

{
	test: /\.(js|jsx|ts|tsx)$/,
	loader: 'babel-loader',
	exclude: /node_modules/ // 或 /node_modules\/(css-loader)/
}

如果对 node_modules 有严格 diy 管控场景,可以分组:

{
	exclude: [/node_modules\/(css-loader)/, path.resolve(__dirname, 'node_modules')]
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值