throw new TypeError(`$relative(cwd, fileName): Emit skipped`)
Posted
技术标签:
【中文标题】throw new TypeError(`$relative(cwd, fileName): Emit skipped`)【英文标题】:throw new TypeError(`$relative(cwd, fileName): Emit skipped`)throw new TypeError(`$relative(cwd, fileName): Emit skipped`) 【发布时间】:2021-01-07 16:55:15 【问题描述】:您好,我有以下打字稿代码:
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();
,
;
错误在哪里?,我该如何解决?
谢谢
【问题讨论】:
【参考方案1】:解决办法是在tsconfig中设置了这个变量
"allowJs": false,
【讨论】:
【参考方案2】:我遇到了类似的问题,但就我而言,我需要将tsconfig.json
中的allowJs
设置为true
,因为我的代码库中有一些自动生成的js 代码(JSON 的预编译验证器)架构文件),我需要包含在输出中。
该问题确实是由错误地将TS文件编译成同目录下的JS文件生成的JS文件造成的。当我清除工作区时,ts-node 开始与 TS 文件和那几个自动生成的 JS 文件一起正常工作。
【讨论】:
这似乎是 tsconfig 的问题。我设法删除了 rootDir,它工作得很好。以上是关于throw new TypeError(`$relative(cwd, fileName): Emit skipped`)的主要内容,如果未能解决你的问题,请参考以下文章
throw new TypeError('app.use() 需要中间件函数') - 表示应用程序错误
node.js 错误 - throw new TypeError('first argument must be a string or Buffer');
运行 gulp 给出“path.js:7 throw new TypeError('Path must be a string. Received ' + inspect(path));”
throw new ERR_INVALID_ARG_TYPE('chunk',['string','Buffer'],chunk);TypeError[ERR_INVALID_ARG_TYPE]:“c
node_modules/express/lib/router/index.js:458 throw new TypeError('Router.use() requires a middleware
nrm安装使用报错 internal/validators.js:124 throw new ERR_INVALID_ARG_TYPE(name, ‘string‘, value)--解决方案(代码片