alovajs / alova

Workflow-Streamlined next-generation request tools. Extremely streamline API integration workflow, just one step
https://alova.js.org
MIT License
2.97k stars 109 forks source link

[Bug]: npm run build时报错error TS1192: Module '"D:/demo/node_modules/alova/typings/fetch"' has no default export. #539

Closed yeqinghz closed 2 months ago

yeqinghz commented 2 months ago

这是否是一个 Bug?

这个问题是否已经存在?

Alova 版本

3.0.16

前端框架

Vue

问题描述

最简单环境下,即npm init vite@latest后仅安装了 alova 在src/api/index.ts 添加以下代码 import { createAlova } from 'alova'; import adapterFetch from 'alova/fetch';

const alovaInstance = createAlova({ requestAdapter: adapterFetch() });

然后npm run build即报如上错误

期望的表现

能正常生成dist

复现链接

No response

复现步骤

已提交demo文件夹

系统信息

No response

补充说明

vite 版本:5.4.1

JOU-amjs commented 2 months ago

目测是typescript@5.6的bug,降级到5.5及以下解决

mamboer commented 2 months ago

这个应该不是 typescript 5.6 的问题,实测在typings/fetch.d.ts里面, 把

export = adapterFetch;

改成

export default adapterFetch;

就没有报错了。

@JOU-amjs

JOU-amjs commented 2 months ago

@mamboer 经测试typescript@5.6会报错,但之前的版本正常

ssw1992 commented 1 month ago

@JOU-amjs 大哥,我5.5的版本打包也报这个,跟楼上说的一样,打包的时候还是得改成export default,不能写成export =

JOU-amjs commented 1 month ago

@ssw1992 两步检查法

  1. 是否使用的vscode编辑器的ts版本
  2. 是否node_modules里依然为更高版本
pawover commented 1 month ago

@JOU-amjs image

image

希望可以尽早适配下,目前使用 pnpm patch 临时手动修补

JOU-amjs commented 1 month ago

已修复,请升级到3.0.19。 修复版本中已经单独处理了esm和commonjs的情况,当tsconfig.jsonmodulemoduleResolution设置为node16/nodenext时需要在package.json中指定type=module