记rspack想提issuse,提太慢白嫖不上了

昨天下午在研究了rspack, 在使用cli创建项目时,偶然发现一个bug, 会导致quick Start的项目启动时候会导致ts类型错误 本来打算提个issue,Pr,偷懒一下想等第二天,结果提一半被修好了

bash 复制代码
pnpm create rspack
# 项目名称随意
# 选择react
# 选择ts
# 随意
cd 进项目

pnpm i
pnpm dev
javascript 复制代码
// rspack.config.ts
import * as RefreshPlugin from "@rspack/plugin-react-refresh"

...

plugins: [
		new rspack.HtmlRspackPlugin({
			template: "./index.html"
		}),
		
// 报错的一行
		isDev ? new RefreshPlugin() : null
	].filter(Boolean),

今天早上刚写了issue一半,发现复现不了,代码还是一样的,原来刚好被修了

检查一下发现是 @rspack/plugin-react-refresh 这个库的原因

json 复制代码
// package.json 
"@rspack/plugin-react-refresh": "^1.2.0",

从 有错误的版本 1.3.0 更新到 1.3.1 了

github.com/rspack-cont...

可以发现1.3.0进行了这部分修改,然后1.3.1又改回来了

再切入一段报错代码具体情况

javascript 复制代码
// rspack.config.ts
import * as RefreshPlugin from "@rspack/plugin-react-refresh"

...

plugins: [
		new rspack.HtmlRspackPlugin({
			template: "./index.html"
		}),
		
// 报错的一行
		isDev ? new RefreshPlugin() : null
	].filter(Boolean),

想一下我们的es导入和导出方式

javascript 复制代码
// esm 命名空间导入
import * as RefreshPlugin from "@rspack/plugin-react-refresh"
// 或 命名导入
import { RefreshPlugin } from "@rspack/plugin-react-refresh"

// cjs
const RefreshPlugin = require("@rspack/plugin-react-refresh")
arduino 复制代码
// ts 特有语法,兼容CommonJs/AMD
export = ReactRefreshRspackPlugin

// 默认导出 可以使用任意名称导入
export default ReactRefreshRspackPlugin

// 命名导出
export { ReactRefreshRspackPlugin }

这里普及一下 ts语法 export = (,对应的导入方式如下

javascript 复制代码
import xxx = require('模块路径');
import * as xxx from '模块路径';

// ts配置esModuleInterop才可使用
import xxx from '模块路径';  // 需要 esModuleInterop: true

所以 1.3.0 的 export { ReactRefreshRspackPlugin } 是具名导出

import * as RefreshPlugin from "@rspack/plugin-react-refresh" 会导致所有导出内容放在 RefreshPlugin 对象下,需要通过RefreshPlugin.ReactRefreshRspackPlugin 访问

小螃蟹可爱

相关推荐
程序员Sunday6 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
Setsuna_F_Seiei6 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程
zhangzeyuaaa7 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
默_笙7 小时前
🌊 向量库和 ES 都查不出"关系",我只好给奶茶建了一张人脉网
前端·javascript
优选资讯7 小时前
标签打印软件怎么对接 Excel 数据
前端·excel
思无邪668 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能
一个风轻云淡8 小时前
GCC 和 GDB命令简单解读
java·linux·前端
u0111026759 小时前
图片处理接口如何统一错误信息 前端提示与后端错误码设计
前端·状态模式
福兮说10 小时前
浏览器里把 iPhone 的 HEIC 转成 JPG:Chrome 解不开、转完大了七成、拍摄时间全丢,六个坑实测
前端·javascript·图像处理·chrome·ios·iphone·heic
libokaifa10 小时前
把语音模型塞进手机:sherpa-onnx 在 Android 上的 ASR / TTS
前端