你好,我有以下类型脚本代码:
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