运行tsc
error TS5055: Cannot write file 'index.d.ts' because it would overwrite input file.
我的tsconfig.json
:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"declaration": true,
"newLine": "LF",
"preserveConstEnums": true,
"pretty": true,
"experimentalDecorators": true
},
"exclude": [
"node_modules",
"typings"
]
}
这个问题解决了:
index.ts
tsconfig
tsc index.ts
declaration
tsconfig
index
重命名为其他名称!我在package.json中更改typescript主文件时遇到同样的问题 例如:将index.ts重命名为foo.ts
将package.json
更改为
"typescript": {
"main": "foo.ts"
}
tsc错误:
error TS5055: Cannot write file 'index.d.ts' because it would overwrite input file.
文件内容无任何问题,任何代码内容都有同样的问题!
我能做些什么来修复它?
源代码:https://github.com/AliMD/Node.js-Telegram-Bot-API/tree/v0.0.2-0
提前谢谢。
答案 0 :(得分:4)
在您的示例文件夹中,您可以编写import * as test from "../";
见https://github.com/AliMD/Node.js-Telegram-Bot-API/blob/v0.0.2/examples/test-server.ts#L1
它应该会加载index.ts
,index.d.ts
或package.json
“typings”字段。
这就是问题所在。您的package.json
确实说index.d.ts
是此套餐的定义文件,请参阅https://github.com/AliMD/Node.js-Telegram-Bot-API/blob/v0.0.2/package.json#L9
因此import * as test from "../";
将加载package.json
,加载打字字段,然后加载index.d.ts
并解决问题。
<强>解决方案强>
您应该导入索引文件而不是根文件夹(推荐)
从“../ index”导入*作为测试;
让您的输出转到不同的位置,例如\lib\index.d.ts
在两个解决方案中你应该加载目标文件而不是文件夹,因为你不再加载根文件夹,问题就会解决。
答案 1 :(得分:1)
Perahaps更好的方法是从构建中排除target
目录。关键是在outDir
和exclude
键中包含相同的目录:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": false,
"sourceMap": true,
"experimentalDecorators": true,
"outDir": "target",
"declaration": true
},
"exclude": [
"node_modules",
"target"
]
}
答案 2 :(得分:1)
非常感谢其他所有人的回答,但是对我来说,这个问题要简单得多(而且愚蠢)。我让WebStorm为我选择了最佳的导入语句,却忽略了它包含“ dist”目录中的一个文件(这是我将输出设置为的文件。
一旦找到原因,该错误就更有意义了,因为它确实试图写入用作输入的输出文件。
答案 3 :(得分:0)
我遇到了同样的问题,修复起来非常简单。我删除了node_modules,然后删除了typings文件夹。
在package.json中的我在
中有这些scripts: {
...
"tsc": "tsc",
"typings": "typings"
...
}
然后运行命令:
npm安装
npm run tsc
npm run typings install
答案 4 :(得分:0)
就我而言,即使我已经设置了以下内容,我还是在 tsconfig.json 中丢失了 "include": ["./src/**/*.ts"]
:
"compilerOptions": {
"outDir": "./build",
"rootDir": "./src"
},
Typescript 可能对它需要包含哪些文件感到困惑,并且可能认为我在 ./build/index.d.ts
中构建的文件是一个输入文件。