我被使用带有 typescript 的 rollbar 卡住了,他们的文档和 aws 一样差。
我正在尝试构建一个基于rollbar的可重用包,并使用最新的TS版本(我们所说的4.2.4)编写
所以.. 让我们深入研究代码部分(在有人问之前!)。
在我的 index.ts 中,我使用
import Rollbar from 'rollbar';
几行之后,我只是使用一个简单、愚蠢的新指令创建记录器实例:
const options = {
// [...]
}
this._logger = new Rollbar(options);
结合以下 tsconfig,我能够构建和发布最终包。
{
"extends": "@tsconfig/node14/tsconfig.json",
"compilerOptions": {
"rootDir": "src/",
"outDir": "dist/",
"declaration": true,
"moduleResolution": "node",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true
},
"include": ["src/index.ts"]
}
但是 - 他们是一个但是,当然,否则他们不会有任何问题 - 当我尝试使用已发布的包时,我遇到了一个我无法解决的错误。
TypeError: rollbar_1.default is not a constructor
这并不奇怪。如果我看一下生成的 JS,我们可以看到导入是使用 importDefault 完成的,结果存储在 rollbar_1 中。
const rollbar_1 = __importDefault(require("rollbar"));
class Logger {
constructor(options, context) {
const config = {
accessToken: '',
reportLevel: '',
codeVersion: '',
environment: ''
};
this._logger = new rollbar_1.default(config);
}
}
我在这里,我被困在这里。
我不知道我在寻找什么,也不知道潜在的错误。
对于那些想要帮助我的人,这里是使用包的项目的 tsconfig:
{
"extends": "@tsconfig/node14/tsconfig.json",
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"moduleResolution": "node",
"outDir": "./dist/",
"rootDir": "./src/"
},
"exclude": ["node_modules", "tests"],
"include": ["src"]
}
对于 Sean,这是“require('rollbar')”的结果
可以肯定的是,返回的值很烂;)
我邮寄了 Rollbar 支持以获得一些帮助。