throw new TypeError(`${relative(cwd, fileName)}: Emit skippe



你好,我有以下类型脚本代码:

import { getConnection } from "typeorm";
import { GraphQLClient } from "graphql-request";
import got from "got";
import database from "./utils/database";
...

当我执行:

cross-env NODE_ENV=development ts-node  src/scripts/createApp.ts http://localhost:3010/graphql

我得到以下错误:

throw new TypeError(`${relative(cwd, fileName)}: Emit skipped`)
^
TypeError: src/scripts/utils/database.js: Emit skipped

database.js

import { createConnection, getConnectionOptions, getConnection } from "typeorm";
export default {
async connect(): Promise<void> {
const connectionOptions = await getConnectionOptions(process.env.NODE_ENV);
await createConnection({
...connectionOptions,
name: "default",
});
},
disconnect(): Promise<void> {
return getConnection().close();
},
};

错误在哪里?,我该如何解决?

感谢

解决方案在tsconfig 中设置了此变量

"allowJs": false,

我也遇到过类似的问题,但在我的情况下,我需要在tsconfig.json中将allowJs设置为true,因为我的代码库中确实有一些自动生成的js代码(JSON模式文件的预编译验证器(,我需要将其包含在输出中。

该问题确实是由错误地将TS文件编译为同一目录中的JS文件而生成的JS文件引起的。当我清理工作区时,ts节点开始正确处理ts文件和那些少数自动生成的JS文件。

在我这边,这是由于更新后的版本问题解决了

yarn add ts-node --dev
# npm i --save-dev ts-node

最新更新