SolidJS报错:_tmpl$不是函数,仅空标签可正常运行
解决SolidJS中
_tmpl$X is not a function错误 针对你遇到的问题,结合使用的版本,核心原因是TypeScript版本过低导致的编译不兼容,以下是具体解决步骤:
升级TypeScript版本
你当前使用的tsc 3.8.3版本过于老旧,SolidJS 1.6.9要求TypeScript最低版本至少为4.5.x,老版本无法正确处理SolidJS的JSX编译逻辑,进而引发模板函数异常。
执行命令升级:npm install typescript@4.9.x --save-dev(也可直接安装最新稳定版:
npm install typescript@latest --save-dev)配置Parcel的SolidJS转换插件
确保Parcel 2.x正确识别并编译SolidJS的JSX:- 安装SolidJS转换插件:
npm install @parcel/transformer-solid --save-dev - 在项目根目录创建或修改
.parcelrc文件,添加SolidJS转换规则:{ "extends": "@parcel/config-default", "transformers": { "*.{tsx,jsx}": ["@parcel/transformer-solid", "..."] } }
- 安装SolidJS转换插件:
修正TypeScript的JSX配置
检查tsconfig.json,确保JSX相关配置符合SolidJS要求:{ "compilerOptions": { "jsx": "preserve", "jsxImportSource": "solid-js", // 移除旧的jsxFactory、jsxFragmentFactory配置(如果存在) } }清理缓存并重新构建
Parcel的缓存可能残留错误编译产物,执行清理后重新构建:- Linux/macOS:
rm -rf .parcel-cache dist - Windows:
rd /s /q .parcel-cache dist
之后重新运行开发命令:
npm run dev- Linux/macOS:
内容的提问来源于stack exchange,提问作者Coffeeholic
相关产品推荐
相关产品推荐

