作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚将我的第一个库包发布到 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/
我是一名优秀的程序员,十分优秀!