gpt4 book ai didi

typescript - 如何修复此 typescript 文件 "is not a module"错误?

转载 作者:行者123 更新时间:2023-12-05 01:12:15 25 4
gpt4 key购买 nike

我刚刚将我的第一个库包发布到 NPM,我正在尝试在应用程序项目中使用它。

它是用 typescript 编写的,项目构建正常,并已发布到 NPM。但是随后尝试使用它失败了,因为它显然不是一个有效的模块。

设置模块导出(afaik)的 index.ts 文件中的代码是:

const initByClass = (widgetBindings: WidgetClassBinding[], h: any, render: any) => {
for (const widgetBinding of widgetBindings) {
setupWidget(widgetBinding, h, render);
}
};

module.exports = {
initByClass
};

而库中的tsconfig.json文件是:

{
"compilerOptions": {
"esModuleInterop": true,
"target": "ES6",
"module": "ES6",
"moduleResolution": "node",
"declaration": true,
"outDir": "./lib",
"strict": true
},
"include": ["src"],
"exclude": ["node_modules", "**/__tests__/*"]
}

在我的应用程序代码中,我已将包添加到我的 package.json(并运行 npm update)并尝试将其导入到应用程序入口文件中:

import { initByClass } from "widgety";

但它给了我一个错误:

TS2306: File '/var/app/app/node_modules/widgety/src/index.ts' is not a module.

我需要更改什么才能使代码可导入到另一个 typescript 项目中?

如果它们有用,所有项目文件:https://github.com/Danack/widgety/NPM 包条目:https://www.npmjs.com/package/widgety

最佳答案

当一个文件使用 export 关键字导出值时,它被认为是一个模块。

我相信用这一行替换 module.exports = 应该可以修复错误:

export default initByClass;

关于typescript - 如何修复此 typescript 文件 "is not a module"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62351433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com