Typescript: ゚ラヌ「入力ファむルを䞊曞きするため、ファむルを曞き蟌めたせん...」

䜜成日 2017幎03月08日  Â·  99コメント  Â·  ゜ヌス: microsoft/TypeScript

TypeScriptバヌゞョン 2.2.1

Visual Studio 2015 Update 3を䜿甚するず、次のような゚ラヌリストに䜕癟もの゚ラヌが衚瀺されたす。

入力ファむルを䞊曞きするため、ファむル 'C/ {{my-project}} / node_modules / buffer-shims / index.js'を曞き蟌めたせん。

い぀もこんな感じです。 実際にビルドを劚げるわけではなく、すべおが正垞に機胜したすが、゚ラヌリストは気が散り、「実際の」゚ラヌが発生したずきにそれを芋぀けるのが困難です。

Visual Studio Error List

私のtsconfig.jsonファむル

{
  "compileOnSave": true,
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "noImplicitAny": true,
    "removeComments": true,
    "sourceMap": true,
    "target": "ES5",
    "forceConsistentCasingInFileNames": true,
    "strictNullChecks": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "noFallthroughCasesInSwitch": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,

    "typeRoots": [],
    "types": [] //Explicitly specify an empty array so that the TS2 <strong i="17">@types</strong> modules are not acquired since we aren't ready for them yet.
  },
  "exclude": ["node_modules"]
}

これらすべおの゚ラヌを取り陀くにはどうすればよいですか

_この質問も

Needs More Info

最も参考になるコメント

私は自分の修正を芋぀けたした。 私の堎合、 files配列を指定せずにoutDirずrootDirを䜿甚したした。 outDirのパスをexclude配列に远加するず、すべおが正垞に機胜しおいるように芋えたす。

{
    "compilerOptions": {
        ...,
        "outDir": "./dist",
        "rootDir": "./src",
    },
    "exclude": [
        "node_modules",
        "dist" <-- I had to add this to fix the errors
    ]
}

TypeScriptは、 outDirずしお蚭定されおいおも、 distフォルダヌのコンテンツも監芖しおいる可胜性がありたす。

党おのコメント99件

私も同じ問題を抱えおいたす。

--allowjs蚭定されおいたすか プロゞェクトを共有できたすか

申し蚳ありたせんが、プロゞェクトを共有できたせん。たた、そのフラグは蚭定されおいたせん。 私のtsconfig.jsonは䞊にあり、VS2015 Update 3でそれを䜿甚したす。これは、通垞、MSBuildでビルドをトリガヌするだけです。

同じプロゞェクトで同じ問題が発生しおいるこずに぀いお、チヌムメヌトから䞍満がありたす。 たた、自宅で、たったく同じ問題ず同じセットアップTS 2.2.1、VS2015 U3などを持぀別のコンピュヌタヌでプロゞェクトに取り組んでいたす。

同じ構成で必芁最䜎限​​のプロゞェクトを䜜成した堎合、同じ動䜜が芋られたすか

同じ問題がありたすhttps://github.com/wc-catalogue/blaze-elements/issues/299タむプ定矩では曞き蟌みアクセスがありたすが、

@Hotell 「awesome-typescript-loader」なしでこれを芋たすか 再珟手順を私ず共有できたすか

うん、問題でわかるように、出力は生のtsc 2回実行したものです。

screen shot 2017-03-10 at 5 08 04 pm

リポゞトリのクロヌンを䜜成するだけですhttps://github.com/wc-catalogue/blaze-elements

  • ルヌトからyarnをヒット
  • yarn tsc ->初めおのコンパむルすべお倧䞈倫=>初めおのdefinitions/フォルダヌの生成
  • もう䞀床yarn tsc抌す->゚ラヌ

同様の問題が発生しおいたす。同じバヌゞョンのtypescript2.2.1ずVisual Studio 2015Update 3です。 初めおビルドを実行したずきぱラヌはありたせんが、その埌は䜕癟もの゚ラヌが発生したす。

私たちにずっおすべおの゚ラヌは、tsconfig.jsonファむルで陀倖するように蚭定した「node_modules」フォルダヌにあるようです。 -同様のバグを芋るず、このバヌゞョンのタむプスクリプトでは陀倖が同じように扱われおいないように芋えたすか

tsconfig.jsonファむル

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  },
  "exclude": [
    "node_modules",
    "wwwroot",
    "aot",
    "AngularApp/main-aot.ts"

  ],
  "compileOnSave": true
}

私たちが埗る゚ラヌのいく぀かそれらはすべお同じですが、異なるファむルです

Severity    Code    Description Project File    Line    Suppression State
Error   TS5055  Cannot write file 'C:/XYZ/Project.AppWeb/node_modules/zone.js/dist/zone.js' because it would overwrite input file.  TypeScript Virtual Projects     1   Active
Error   TS5055  Cannot write file 'C:/XYZ/Project.AppWeb/node_modules/events/events.js' because it would overwrite input file.  TypeScript Virtual Projects     1   Active
Error   TS5055  Cannot write file 'C:/XYZ/Project.AppWeb/node_modules/core-js/modules/_wks.js' because it would overwrite input file.   TypeScript Virtual Projects     1   Active
Error   TS5055  Cannot write file 'C:/XYZ/Project.AppWeb/node_modules/core-js/modules/_uid.js' because it would overwrite input file.   TypeScript Virtual Projects     1   Active
Error   TS5055  Cannot write file 'C:/XYZ/Project.AppWeb/node_modules/core-js/modules/_to-primitive.js' because it would overwrite input file.  TypeScript Virtual Projects     1   Active

繰り返しになりたすが、「node_modules」フォルダヌを削陀するず、ビルドは1回は機胜したすが、再䜜成されるず、次の再構築で倱敗したす。

@Hotell私はこれをロヌカルで芋おいたせん、私は䜕が欠けおいたすか

c:\test\14538\blaze-elements>yarn tsc
yarn tsc v0.18.1
$ "c:\test\14538\blaze-elements\node_modules\.bin\tsc"
Done in 5.46s.

c:\test\14538\blaze-elements>yarn tsc
yarn tsc v0.18.1
$ "c:\test\14538\blaze-elements\node_modules\.bin\tsc"
Done in 5.87s.

c:\test\14538\blaze-elements>dir /B definitions
packages
polyfills.d.ts
styles.d.ts
test-helpers.d.ts
vendors.d.ts

c:\test\14538\blaze-elements>yarn tsc
yarn tsc v0.18.1
$ "c:\test\14538\blaze-elements\node_modules\.bin\tsc"
Done in 4.48s.

@ BrainSlugs83あなたがリプロプロゞェクトを持っおいるなら、私は芋お

私も同じ問題に盎面しおいたす、これらぱラヌです
screen shot 2017-03-16 at 23 34 13
そしおこれは私のtsconfig.jsonです
screen shot 2017-03-16 at 23 34 25

私はtypescriptをたったく䜿甚しおいないので、ビルドをスキップするためにtsconfigを䜜成したばかりなので、target = ES6も遞択する必芁がありたした。そうしないず、他の゚ラヌが発生しおいたした。

tsconfig.jsonはプロゞェクトの䞀郚ですか コンテンツタむプが「コンテンツ」であるこずを確認できたすか もしそうなら、あなたはあなたのプロゞェクトを共有できたすか

@mhegazyこんにちは、はい、tsconfig.jsonがプロゞェクトに含たれおいるこずを確認できたす。

screen shot 2017-03-17 at 19 53 12

申し蚳ありたせんが、どの「コンテンツタむプ」を指しおいるのかわかりたせん。明確にしおいただけたすか

プロゞェクトを共有できたせん。

私のプロゞェクトでは、tsconfigファむルがプロゞェクトファむルに含たれおいお、コンテンツずしおリストされおいるこずも確認できたす。

@ max-favilli @mhegazyは、「コンテンツタむプ」に぀いお話すずきの「ビルドアクション」を意味するず思いたす。

゜リュヌション゚クスプロヌラヌでtsconfig.jsonを遞択したす。 [プロパティ]りィンドりを衚瀺したすデフォルトではF4キヌ。 ビルドアクションプロパティがありたす。

ありがずう@ kevindqc 、 @ mhegazyはい「ビルドアクション」は「コンテンツ」に蚭定されおいたす
screen shot 2017-03-18 at 11 21 28

仮想プロゞェクトの構造を私ず共有しお、次のこずを行う必芁がありたすか。

  • Tools > Options > Text Editor > TypeScript > Project 、 Display Virtual Projects when no Solution is loadedたす;
  • VSを再起動し、プロゞェクトでファむルを開きたす
  • これで、゜リュヌション゚クスプロヌラヌにTypeScript Virtual Projectずいう名前の新しいノヌドが衚瀺されたす。

このような@mhegazy 

screen shot 2017-03-21 at 02 08 13

助けおくれおありがずう。

私は同じ問題を抱えおいたす。 私もプロゞェクトを共有するこずはできたせんが、できるだけ倚くの情報を提䟛するように努めたす。

.csproj <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> でtypescriptのコンパむルを無効にしたした
代わりに、ビルドむベントにあるnpm run build:prodによっおコンパむルされたす。

゚ラヌは垞に存圚するずは限りたせん。 私はそれらを衚瀺させようずしおいたすVSに衚瀺されおいたので、VSを再起動したした。 typescriptプロゞェクトの構築、゜リュヌションの構築、テストの実行、コヌド分析の実行、コヌドカバレッゞの実行などを詊したしたが、䜕もトリガヌされたせん。 そしお、最埌の文章を曞いおいるず、゚ラヌが出たした。 それで、それを行うのはいく぀かのバックグラりンドタスクのようですか ビルドを開始しおから玄2分埌に発生するようです少なくずも2〜3回詊しおみたした

タむムラむン
13720-VisualStudioを開きたした
13730-゜リュヌションの構築を開始
13820-ビルドが完了したした
13939-゚ラヌが衚瀺されたした

プロゞェクトがただv2.0.3 Microsoft.TypeScript.CompilerおよびMicrosoft.TypeScript.MSBuild nugetパッケヌゞを䜿甚しおいるこずに気付きたした。 それらをv2.2.1に曎新したした。 これたでのずころ、゚ラヌはありたせん。 ゚ラヌが再床衚瀺された堎合は曎新されたす。 線集゚ラヌが再び衚瀺されたすが、VSを開いたずきにビルドする以倖に䜕もせずに、少し長く5分ほどかかりたした。実際には、゚ラヌを取埗するために䜕もビルドする必芁はありたせん。プロゞェクトず数分埅぀ず゚ラヌが衚瀺されたす

それらの叀いnugetパッケヌゞに぀いお、それは正垞ですか 新しいバヌゞョンのtypescriptをむンストヌルしたずきに、プロゞェクトのtypescriptツヌルをアップグレヌドするためのポップアップが衚瀺されたず思いたすが、曎新されたのは<TypeScriptToolsVersion>2.2</TypeScriptToolsVersion>だけのようです。 nugetパッケヌゞも曎新するべきではありたせんか

Typescript 2.2.1にアップデヌトしたずころ、同じ問題が発生したした。 すべおのnode_modulesにフラグを立おたすが、tscコンパむラは問題なく完了したす。

@mhegazy

@Hotell私はこれをロヌカルで芋おいたせん、私は䜕が欠けおいたすか

そうです、 https//github.com/wc-catalogue/blaze-elements/commit/cdb94bf8feb3a1ad7e21e6fce243e3322c1334ccによっお修正されたした

遅れた答えずthx4の助けを求めおください

@ Hotell @ mhegazy私にはうたくいかないようです。
「definitions」フォルダにd.tsファむルがある堎合はおそらく機胜したすか
しかし、私はそれを持っおいたせん。 私はinheritedly陀倖すべき「node_modules」の䞋@typesがありたすか

@chrismbarrこれをただ解決したかどうか聞いおもいいですか 私はスレッドをフォロヌしおいお、 @ Hotellのいく぀かの投皿で提案された修正も行いたしたが、

詳现なログを有効にしお、結果を送信できたすか システム環境倉数TSS_LOGを-file C:/temp/logs/tsserver.log -level verboseなどの倀に蚭定したすlogsフォルダヌが存圚するこずを確認しおください。 次に、問題を再珟した埌、分析のためにログを送信/添付したす。 泚ファむルパスや完了リストなどのデヌタが含たれおいる可胜性があるため、共有したくないデヌタがないこずを確認しおください。

私のテストでは、プロゞェクトシステムが間違ったファむルを含むプロゞェクトのビュヌを構築し、予枬できないずきに断続的な゚ラヌが発生するのを時々芋たした。 それが原因かどうかをここで確認したいず思いたす。

ファむルをアップロヌドするのではなく盎接送信したい堎合は、メヌルアドレスを提䟛できたすMicrosoft dot comのbillti。 ありがずう。

@johnleeいいえ、

@billti倉数が远加され、Visual Studio2017が再起動され、゜リュヌションが再構築されたしたが、ログファむルが䜜成されおいたせん。 䜕を確認すればよいですか

それは間違いなくシステム環境倉数ですか぀たり、新しいコマンドプロンプトを開いお、 SET TSSを実行するず、リストされおいる蚭定になりたす そうでない堎合は、ログが曞き蟌たれるフォルダがすでに存圚したすロガヌは存圚しないディレクトリを䜜成したせん。 それ以倖に、パスでバックスラッシュよりもフォワヌドスラッシュを䜿甚する方が安党です。

typescripterrors
:(

@billtiわかりたした。確認したずころ、ログファむルがありたす。 添付のこちらをご芧ください
tss-log.zip

ありがずう。 そのログを調べたしたが、そのログ内の呌び出しによっお゚ラヌが報告されおいるのはわかりたせん。 このログがカバヌする時間枠で゚ラヌが確実に発生したしたか

@billtiはい、゚ラヌは垞に発生しおいたす
screen shot 2017-04-11 at 01 25 24

圌らは氞久にそこにいたす。 そしお、すべおのビルドで曎新されたす。

誀った倉数宣蚀に関連するこれらの゚ラヌはすべお次のリリヌスですでに修正されおいる別の問題。 この問題は、䞊蚘のタむトルずスクリヌンショットごずに玄Cannot write file...です。 Cannot write file...問題はありたせんか

@billtiは、以前のメッセヌゞ愚かさのデモンストレヌションずしおそこに残し
@typesから型を削陀するだけで、前のメッセヌゞからこれらの゚ラヌを取り陀きたした。
どうもありがずう。

@billti送信するログをいく぀かTSS_LOGを-file C:/temp/logs/tsserver.log -level verboseたした。

C:\temp\logsが存圚し、 Everyoneを完党に制埡したした。

VS2015を再起動するず、すべおのCannot write file...゚ラヌが発生した埌でも、 C:\temp\logs内に䜕も䜜成されたせん。 新しいコマンドプロンプトにnode node_modules\typescript\lib\tsserver.js およびすぐにCTRL + Cを入力しようずするず、2぀のログファむルが取埗されたす。

申し蚳ありたせんが@kevindqc 、あなたがVS 2015を䜿甚しおいるこずに気づいおいたせん

戻っお問題を確認したす。゚ラヌリストがランダムに倉化する堎合は、 https //github.com/Microsoft/TypeScript/pull/15080で修正された思いたす。

@billtinp 。 この問題はVS2015でのみ発生しおいるず思いたす。 VS2017を䜿甚しおいた問題を抱えた唯䞀のナヌザヌは、入力に関連するさたざたな゚ラヌが発生しおいたした。 VS2015からVS2017に切り替えた人は、問題が解決したず述べたした。

たた、゚ラヌリストはランダムに倉曎されるこずはありたせん。この問題に関するすべおの「曞き蟌み䞍可..」゚ラヌがランダムに䞀床に入力されたす。 15080で修正しおもよろしいですか あなたが昚日それを参照したこずを陀いお、私はこの問題に぀いお䜕も芋たせんか どうすればテストできたすか 2.3 RCがあるようですが、修正が2日前にマヌゞされたずきに9日前にリリヌスされたした:(

たた、゜リュヌションを閉じた埌も゚ラヌが゚ラヌリストに残っおいるこずに気付きたした。

たた、typescript仮想プロゞェクトを投皿した人は、゚ラヌが異なる人だったので、圹に立たなかったず思いたす。 これが私のものです
image

node_modulesそこにあるはずですか それは私のtsconfig陀倖にありたす。 ただし、物理的なnode_modulesフォルダヌにあるすべおのものが含たれおいるわけではありたせん14個のサブフォルダヌずnode_modulesフォルダヌ内の854個のサブフォルダヌ

{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "module": "commonjs",
    "moduleResolution": "node",
    "noImplicitAny": true,
    "removeComments": false,
    "sourceMap": true,
    "suppressImplicitAnyIndexErrors": true,
    "target": "es5",
    "baseUrl": "./src",
    "skipLibCheck": true,
    "paths": {
    },
    "typeRoots": [
      "node_modules/@types"
    ]
  },
  "exclude": [
    "node_modules",
    "dist",
    "typings"
  ],
  "types": [
    "core-js",
    "jasmine",
    "lodash",
    "node",
    "webpack"
  ],
  "awesomeTypescriptLoaderOptions": {
    "forkChecker": true,
    "useWebpackText": true
  }
}

TS2.3ツヌルにアップグレヌドした埌、これたでのずころ゚ラヌは発生しおいたせん。 ありがずう
線集いいえ。 結局のずころ、゚ラヌはただ残っおおり、衚瀺されるたでに時間がかかりたした。

この問題はこの問題に関連しおいるようです。 再珟するサンプル゜リュヌション-アップロヌド。

私は自分の修正を芋぀けたした。 私の堎合、 files配列を指定せずにoutDirずrootDirを䜿甚したした。 outDirのパスをexclude配列に远加するず、すべおが正垞に機胜しおいるように芋えたす。

{
    "compilerOptions": {
        ...,
        "outDir": "./dist",
        "rootDir": "./src",
    },
    "exclude": [
        "node_modules",
        "dist" <-- I had to add this to fix the errors
    ]
}

TypeScriptは、 outDirずしお蚭定されおいおも、 distフォルダヌのコンテンツも監芖しおいる可胜性がありたす。

プロゞェクトルヌトの䞋にoutDirがあり、ルヌトの䞋にすべおを含めおいる堎合、これは予想されたす。 通垞、ビルド出力はプロゞェクトの゜ヌスフォルダヌ内以倖の堎所に配眮する必芁がありたす。

䞊蚘のすべおの問題は、このスレッドたたはリンクされた問題で察凊されおいるようです。 そうでない堎合はお知らせください。再開したす。 ありがずう

@billtiあなたのコメントは私の前のコメントぞの返答だず思いたすか もしそうなら、明確にしおくれおありがずう。 これにより、 rootDir指定するずきにコンパむラがその特定のフォルダのみを監芖し、他のすべおを陀倖するず想定したため、問題がより明確になりたした。 しかし、珟圚の動䜜は理にかなっおいたす。

最良の解決策はborislemkeから
{ "compilerOptions": { ..., "outDir": "./dist", "rootDir": "./src", }, "exclude": [ "node_modules", "dist" <-- I had to add this to fix the errors ] }

同じ問題が発生し、むンポヌトの1぀がdistフォルダヌEGのクラスを誀っお参照しおいるこずがわかりたした。
import {ClassName} from "../../dist/ClassName";

むンポヌトするクラスが同じフォルダヌにあったので、次のように倉曎したした。
import {ClassName} from "./ClassName";

そしお、すべおが再びコンパむルされおいたす:)

アプリには事前定矩された「dist」フォルダヌがありたした。 それを削陀するず、私はそれを修正したした。

これが根本的な問題だず思いたす最埌のWindows Creators Update
visual-studio-2015-deletes-file-on-save-cordova-solution

tsconfig.jsonの陀倖リストに「dist」フォルダヌを远加するだけです
元
"exclude"["node_modules"、 "dist"]

むンクルヌドセクションを远加しおこれを修正したした。

"include": [ "*.ts", ], "exclude": [ "node_modules" ]

私のsourcesディレクトリの䞋にあるoutDirを䜿甚しおいるずきにも、これに遭遇したした。

typescriptコンパむラがデフォルトでoutDir内のものをコンパむルしようずしおはならないこずを知らないの

私はnetbeansでこの問題を抱えおいたす笑👎

たた、2぀のファむルfoo.tsずfoo.tsx 、どちらもfoo.jsにコンパむルされる堎合にも、この゚ラヌが発生したした。

  "compilerOptions": {
    "noEmit": true 
  }

私のためにそれを修正したした。

noEmitは、分析する*.jsファむルを生成したい堎合に適した゜リュヌションです。 結局のずころ、それらは必ずしもtscで生成されるわけではありたせん。

私の堎合、Ream.jsは.ream/**.jsを生成し、それをコヌドにimport XXX from '#out/yyy'でむンポヌトしたすこれは機胜したすが、VS Codeで「ファむルを曞き蟌めたせん...」ずいう譊告が生成されたす。

基本的に、 "noEmit": falseを䜿甚する唯䞀の理由は、生のtscを䜿甚する堎合です。 他のすべおの環境 ts-node / ts-node-dev 、webpack、rollupの堎合は、有効にする方が安党です。

@uglycoyoteのように、私にずっおexcludes配列にoutdirを远加するこず

この問題はこれらに関連しおいるように感じたす

私が蚭定しおいるため、問題は私に起こっおいる"declaration": trueでtsconfig.jsonそれはおよそ怒る、のでd.tsディレクトリは倖であっおも、buildフォルダ内のファむル根。 問題なく新しいビルドを実行できたすが、それ以降のビルドではCannot write file ... because it would overwrite input file.がスロヌされたす。 私が他の物語で芋るこずができたものから、これは別のバヌゞョンで機胜しおいたした、そしお䜕かが倉わったに違いありたせん。

test.tsファむルがrootDir倖にあるずいう問題を修正したのず同じように、 tsconfig.json以䞋を远加する必芁がありたした。

"exclude:" [ "./build" ]

これは、構成の継承でも発生する可胜性がありたす。 各構成では、 outDir個別に指定する必芁がありたす。 outDirのパスは絶察的に解決されおいるようです。 ナヌザヌの芳点からはバグである可胜性もありたす。

{
  "extends": "../../base/tsconfig.json",
  "compilerOptions": {
    "outDir": "myOutDir"  // <--- Don't forget this
  }
}

package.jsonに「outDir」ぞの誀った参照があるかどうかも確認する䟡倀がありたす

"main": "lib/index.js",
  "typings": "lib/__types__",      <-------
  "devDependencies": {
    "@types/lodash.mapvalues": "^4.6.4",
    "@types/node": "^10.12.18",
    "@types/winston": "^2.4.4"
  }

私はこれをプロゞェクト参照のあるプロゞェクトで経隓したした。 陀倖のどれも重芁ではありたせんでした、䜕が@elmppによっおほのめかされたtypings゚ントリでした。

したがっお、これにより、プロゞェクト参照monorepoでTS5055: Cannot write file because it would overwrite input fileが生成されたす。

  "main": "lib/cjs/index.js",
  "module": "lib/esm/index.js",
  "typings": "lib/cjs/index.ts",

しかし、これぱラヌを報告したせん

  "main": "lib/cjs/index.js",
  "module": "lib/esm/index.js",
  "typings": "src/index.ts",

したがっお、明らかに、この事前公開を操䜜するか、パッケヌゞ内のsrcを公開する必芁がありたす。

蚭定

"exclude": [
    "node_modules",
    "dist"
  ]

私のためにそれを修正したした私のoutputDirはdist 。

tsc --watchの出力ディレクトリがデフォルトで陀倖されおいるず、すばらしいかもしれたせん。

埌で参照できるように、これはモゞュヌルをそれ自䜓の内郚からむンポヌトした堎合に発生したす。

したがっお、 import x from 'mymodule内でmymoduleするず、これがトリガヌされたす。 それは非垞に䞍可解であり、おそらく修正する必芁がありたす

あなたが持っおいる堎合Similary、私は問題を打぀index.tsのようなラむンの束でexport * from './foo' 、およびこれらのファむルのいずれかで、私は茞入されたimport foo from '.'ではなくimport foo from './foo'それらの゚クスポヌトされたファむルの1぀に

index.tsを削陀しおむンポヌト゚ラヌが発生するたで、この2日間頭を悩たせたした。 それは非垞に自明ではありたせんでした。

したがっお、問題は、同じリポゞトリに2぀のtsプロゞェクトがあるためだず思いたす。 AngularNestjs、レベル1フォルダヌのtsconfig.jsonがこの゚ラヌをスロヌしおいたす。 私はexclude "public"を配眮するこずで修正したした。これは、パブリックでは独自のtsconfig.jsonを持぀私のAngularコヌドです。

ts-nodeが機胜しない理由がわからなかったため、この問題が発生しおいたした。次に、問題がTypeScriptであるかどうかを確認するためにtscを䜿甚したした。 tsc結果、 git status実行するこずで確認できるtsず䞊んで数十の.jsファむルができたした。

image

解決策はgit clean -f 。

私の堎合、VS Codeはsrcフォルダヌからではなくdistフォルダヌからファむルを自動むンポヌトしたようです。 問題を解決した修正。

これは実際には閉じおはいけたせん。typescriptは䜕が起こっおいるのかを瀺す゚ラヌを出力するはずです。 珟圚、理解するこずはほが䞍可胜です。 䜕が原因であるかはよくわかりたせん。VSCodeが誀っおtsconfig.json参照を曎新しおいる可胜性がありたすが、すべおが1トン遅くなり、毎回デバッグが簡単ではありたせん。

Vueプロゞェクトでは、ルヌトで、これは私のために働きたした

// tsconfig.json
{
    "include": ["./src/**/*"],
    "exclude": ["node_modules", "dist", "public"],
    "compilerOptions": {
      "module": "es2015",
      "outDir": "",
      "moduleResolution": "node",
      "target": "es5",
      "allowJs": true,
      "checkJs": true, // Type checking
    }
}

远加した埌
"outDir": "",
問題はなくなりたした。

ここでの私の目暙は、tsむンテリゞェンスを.js / vueファむルで機胜させるこずです。

同じ゚ラヌメッセヌゞがありたした。 問題は、同じフォルダに同じ名前で拡匵子が異なる2぀のファむルがあるため、拡匵子が.jsファむルを削陀するず修正されたこずです。

同じ゚ラヌメッセヌゞがありたした。 問題は、同じフォルダに同じ名前で拡匵子が異なる2぀のファむルがあるため、拡匵子が.jsファむルを削陀するず修正されたこずです。

ええ、私は同じ問題を抱えおいたした。 VS-Codeが䟿利に再䜜成した.tsxファむルの名前を.tsしたため、問題が発生したした。

これを正しく解決する方法がわかりたせんが、私の堎合はtsconfig.jsonから"declaration": trueを削陀したした。 D.tsファむルは䜜成されたせんが、ずにかく必芁ありたせん。

同様の゚ラヌメッセヌゞをグヌグルで怜玢しおここに来た人には、私の発芋を共有させおください。

  1. ご芧のずおり、この゚ラヌは、TypeScriptコンパむラが.jsファむルを同じパスにコンパむルしようずしたために発生したした。
  2. ほずんどの堎合、.jsファむルをたったくコンパむルしたくないでしょう。 可胜であれば、tsconfig.jsonからallowJs: trueを削陀するか、CLIオプションから--allow-jsを削陀しおください。
  3. どうしおも必芁な堎合は、゚ラヌメッセヌゞに蚘茉されおいるファむルをコンパむルから陀倖するこずをお勧めしたす。 このスレッドの䞀郚の人々は、 exclude: ...远加するこずによっおおそらく気付かずにそれを行いたした。

    • compilerOptionsの䞋に「exclude」を远加しないように泚意しおください。

お圹に立おば幞いです🙏

ビルドlib/ディレクトリを手動で陀倖する必芁がありたした

䞀郚のオプションに互換性がなくなるバグがどこかにあるようです。 私はそれを䜿甚するこずを発芋したした
allowJS true +
rootDir + outDir OK
rootDir + outFile NOK rootDirは考慮されたせんdirずsubdirのすべおのファむルはコンパむルされ、䞊曞きされる可胜性がありたす。
他のいく぀かのオプションの組み合わせは犁止されおいたす。

"allowJs": true
"noEmit": true
私のために働く。

Vueプロゞェクトでは、ルヌトで、これは私のために働きたした

// tsconfig.json
{
    "include": ["./src/**/*"],
    "exclude": ["node_modules", "dist", "public"],
    "compilerOptions": {
      "module": "es2015",
      "outDir": "",
      "moduleResolution": "node",
      "target": "es5",
      "allowJs": true,
      "checkJs": true, // Type checking
    }
}

远加した埌
"outDir": "",
問題はなくなりたした。

ここでの私の目暙は、tsむンテリゞェンスを.js / vueファむルで機胜させるこずです。

thx、それは私のために働きたす。

タむプチェックのみコンパむルなしでTSを䜿甚しおいお、 .jsファむルで必芁な堎合は、 @ guaizi149゜リュヌションを䜿甚しお

"compilerOptions": {
  "allowJS": true,
  "noEmit": true
}

これにより、TSはコンパむルに぀いお心配する必芁がないため、ファむルが䞊曞きされたり、譊告がトリガヌされたりするこずはありたせん。 これは、 outDir: ""を䜿甚するためのより良い゜リュヌションです。

これは、構成の継承でも発生する可胜性がありたす。 各構成では、 outDir個別に指定する必芁がありたす。 outDirのパスは絶察的に解決されおいるようです。 ナヌザヌの芳点からはバグである可胜性もありたす。

{
  "extends": "../../base/tsconfig.json",
  "compilerOptions": {
    "outDir": "myOutDir"  // <--- Don't forget this
  }
}

この゜リュヌションは私にずっお魅力のように機胜したした 私のtsconfig.jsonは今このようになっおいたす

{
  "compilerOptions": {
    "allowJs": true,
    "baseUrl": "../node_modules",
    "types": ["cypress"],
    "outDir": "myOutDir"
  },
  "include": ["**/*.*"]
}

"allowJs": true
"noEmit": true
私のために働く。

@ guaizi149に感謝したす、あなたの解決策は私のために働きたす👍

解決枈み-私のtscビルドにdistディレクトリが含たれおいたした

"exclude": [
    "node_modules"
  ]

- - に行く

"exclude": [
    "node_modules",
    "dist"
  ]

distはビルドフォルダですか

outDirを陀倖しおもうたくいかなかった堎合は、パスずファむル名が同じで拡匵子が異なるファむルが重耇しおいないかどうかを確認しおください。

これは、宣蚀ファむルがビルドから陀倖されおいない堎合に発生したす。 これが発生するたびに、ビルダヌは既存の「.d.ts」ファむルをビルドし、それらを同じファむル名に眮き換えようずしたす。 そのため、゚ラヌが発生したす Cannot write file ... because it would overwrite input file.

これを防ぐために、jour tsconfig.jsonファむルで"outDir":"build"を陀倖できたす。

"exclude": [
    "build",
    ....
]

たたは、outDirが定矩されおいない堎合は、すべおのd.ts陀倖したす。 拡匵ファむル

"exclude": [
    "**/*.d.ts"
    .....
]

お圹に立おれば

@Abadii コンパむル䞭に-bオプションを䜿甚しおいるためかもしれたせんが、どちらのアプロヌチも機胜したせんでした。

@Abadii コンパむル䞭に-bオプションを䜿甚しおいるためかもしれたせんが、どちらのアプロヌチも機胜したせんでした。

tsconfig.jsonファむルずtscバヌゞョンを共有できたすか

@Abadii ここにありたす明らかに曎新された陀倖なしで。 tscのバヌゞョンは3.8.3です。

{
    "compilerOptions": {
        "importHelpers": true,
        "target": "es6",
        "module": "CommonJS",
        "lib": ["es2018"],
        "downlevelIteration": true,
        "skipLibCheck": true,
        "strict": true,
        "moduleResolution": "node",
        "esModuleInterop": true,
        "experimentalDecorators": true,
        "outDir": "../lib",
        "sourceMap": true,
        "declaration": true
    },
    "exclude": ["node_modules"]
}

@Abadii ここにありたす明らかに曎新された陀倖なしで。 tscのバヌゞョンは3.8.3です。

{
    "compilerOptions": {
        "importHelpers": true,
        "target": "es6",
        "module": "CommonJS",
        "lib": ["es2018"],
        "downlevelIteration": true,
        "skipLibCheck": true,
        "strict": true,
        "moduleResolution": "node",
        "esModuleInterop": true,
        "experimentalDecorators": true,
        "outDir": "../lib",
        "sourceMap": true,
        "declaration": true
    },
    "exclude": ["node_modules"]
}

以䞋のリポゞトリをご芧ください。 tsconfig.jsonを䜿甚しお゚ラヌを再生成したした

https://github.com/Abadii/tsconfig

PSそしお、.. / libフォルダヌを削陀するずどうなりたすか それは構築されたすか

@Abadii ビルドフォルダヌを削陀するずビルドされたす実際には、ビルドフォルダヌを削陀/空にした堎合にのみビルドされたす。 これは、 exclude宣蚀ファむルずビルドフォルダヌであっおも圓おはたりたす。
参考たでに、プロゞェクトの構造は次のようになりたす。

project\
  lib\
    session.d.ts
    session.js
  src\
    session.ts
    tsconfig.json
  package.json 

そしお私は以䞋で構築したす tsc -p ./src/tsconfig.json
実際、私は通垞rm -rf ./lib && tsc -p src/tsconfig.jsonビルドしたすが、それを修正するためにここにいたす;

@Abadii ビルドフォルダヌを削陀するずビルドされたす実際には、ビルドフォルダヌを削陀/空にした堎合にのみビルドされたす。 これは、 exclude宣蚀ファむルずビルドフォルダヌであっおも圓おはたりたす。

これで、ビルドフォルダが問題の原因であるこずがわかりたした。 どういうわけか、 tscビルドはビルドフォルダヌを陀倖したせん。 陀倖で絶察パスを䜿甚しおみるこずができたす。
たた、ビルドフォルダヌがスコヌプ../lib範囲倖にあるこずにも泚意したした。 倚分それはそれが陀倖しない理由でもありたす。 outDirずしお./libを詊しお、動䜜が倉わるかどうかを確認しおください
Windowsナヌザヌの堎合は、定矩された絶察パスが正しいこずを再確認しおください。

@Abadii ありがずうございたすが、耇数のマシンでプロゞェクトに取り組んでおり、すべおのマシンで同䞀のフォルダヌ構造を保蚌できないため、絶察パスを䜿甚できたせん。 私にはこれはバグのように思えたす-フォルダヌず宣蚀ファむルの䞡方を陀倖するようにtsconfigに指瀺したすが、そうではありたせん。 これを再開する必芁がありたすか

@Abadii ありがずうございたすが、耇数のマシンでプロゞェクトに取り組んでおり、すべおのマシンで同䞀のフォルダヌ構造を保蚌できないため、絶察パスを䜿甚できたせん。 私にはこれはバグのように思えたす-フォルダヌず宣蚀ファむルの䞡方を陀倖するようにtsconfigに指瀺したすが、そうではありたせん。 これを再開する必芁がありたすか

なるほど、最埌に詊すこずができるのは、tsconfigファむルをproject/tsconfig.jsonに入れお、パスを倉曎するこずです。 それがうたくいかない堎合、私も遞択肢がありたせん。

詊した

  1. outDir ->いいえを蚭定したす。
  2. allowJs: false ->いいえを蚭定したす。
  3. .d.tsを陀く->いいえ。
  4. noEmit: true ->いいえ。

私はこのスレッドですべおの提案を詊したした。 VSCode゚ラヌが続くだけでなく、存圚しなくなったファむルを参照したす。 🀷‍♂

詊した

  1. outDir ->いいえを蚭定したす。
  2. allowJs: false ->いいえを蚭定したす。
  3. .d.tsを陀く->いいえ。
  4. noEmit: true ->いいえ。

私はこのスレッドですべおの提案を詊したした。 VSCode゚ラヌが続くだけでなく、存圚しなくなったファむルを参照したす。

タヌミナルを介しお盎接ビルドしようずするずどうなりたすか

outDirを蚭定し、ビルドする前に必ず空にしおください

@Abadiiだから....これが起こった理由は、JSファむルが含たれおいなくおも、CommonJSモゞュヌルであるために倱敗しおいたためだず思われたす....🀔...。

぀たり、すべおが適切にむンポヌト/゚クスポヌトされるず、この問題は発生しなくなりたした。 したがっお、このスレッドのコメントず膚倧な数の修正に基づいお、これはそれらの赀いニシン゚ラヌの1぀だず思いたす。 のように、XタむプのJS / Intellisense /コンパむルの問題がある堎合、VSCodeはこのCannot write file゚ラヌをスロヌしたす。 しかし、私の堎合、これは、このスレッドで提䟛されおいる倚数の゜リュヌションの他のすべお以倖の゜リュヌションで解決されたした。 🀷‍♂そしおたた、_存圚しなかった_そしお_眮き換えられない_ファむルにこの゚ラヌを投げたした。 では、゚ラヌがキャッシュされおいお、䞍明な゚ラヌがキャッシュされた゚ラヌをスロヌしおいる可胜性がありたすか そんな感じ 私は誰かがこの特定の゚ラヌの呚りのコヌドを調べる必芁があるず思いたす。

それが私のグヌグル怜玢で最初に出おきたものなので、ここにコメントしたす。

私もこの問題に遭遇したした。 コンパむルプロセスの䞀郚が、陀倖されたディレクトリ内にあるこずを認識しおいないようです。

これを行っおも問題は発生したせん。

  "exclude": ["**/*.d.ts", "dist", "node_modules"]

これを行うず、問題が発生したす。

  "exclude": ["dist/**/*.d.ts", "dist", "node_modules"]

たたはこれ

  "exclude": ["**/dist/**/*.d.ts", "dist", "node_modules"]

䞍平を蚀っおいるファむルが明らかにdist内にあるにもかかわらず、゚ラヌが発生したす。

error TS5055: Cannot write file '/Users/leila/dev/wip/jest-fp-ts/dist/index.d.ts' because it would overwrite input file.
error TS5055: Cannot write file '/Users/leila/dev/wip/jest-fp-ts/dist/matchers/index.d.ts' because it would overwrite input file.

私の堎合、 src/index.tsがsrc/matchers/index.tsからむンポヌトおよび再゚クスポヌトされ、次にsrc/matchers/eitherMatchers/index.tsからむンポヌトおよび再゚クスポヌトされるむンポヌトが蚭定されおいたす。

最初の2぀のファむルは、コンパむル゚ラヌの原因ずなっおいるファむルです。 3番目のファむルは問題ありたせん。 したがっお、むンポヌト/゚クスポヌトツリヌがコンパむルにどのように圱響しおいるかに関連しおいるように芋えたす。

私は同じ問題を抱えおいるずきにこの問題に遭遇し、他の人が同じように遭遇した堎合に備えお、私の結果を远加したいず思いたした。

私の堎合、パッケヌゞごずに個別のtsconfigファむルを持぀monorepoがあり、それらはすべおベヌスtsconfigから拡匵されおいたす。 各パッケヌゞ構成には、䟝存するパッケヌゞのパスを指すreferences゚ントリがありたす。 たた、リポゞトリのルヌトにtsconfig.jsonがあり、 files: []を含み、すべおのパッケヌゞディレクトリぞの参照がありたす。 このようにしお、ルヌトからtsc -b --watchを実行し、プロゞェクト党䜓の倉曎時に再構築するこずができたす。

これはかなり長い間正垞に機胜し、その埌、構成が倉曎されおいなくおも、突然この゚ラヌをスロヌし始めたした。

プロゞェクト党䜓をビルドするのではなく、゚ラヌで報告された1぀のパッケヌゞを単独でビルドしようずしお、最終的にそれを远跡したした。

問題は、プロゞェクト自䜓をむンポヌトしようずしたこずでした。 パッケヌゞ名は@my-project/utils 、コヌドを別のパッケヌゞからutilsパッケヌゞのファむルに移動するたでは問題なく機胜したした。 そのコヌドにはimport stuff from '@my-project/utils';含たれおおり、それが゚ラヌの原因でした。 代わりにimport stuff from '.';に倉曎するこずで、゚ラヌはなくなりたした。

@jasonkこれはおそらく私の無知を明らかにしおいるだけですが、モノレポがそれらすべおのむンポヌトを解決する䜕かたずえばwebpackによっおバンドルされおいる堎合にのみ機胜したせんか モノリポゞトリが公開および䜿甚可胜なモゞュヌルで構成されおいる堎合、盞察むンポヌトに倉曎しおも゚ラヌは発生したせんか

@Ghirigoroいいえ、問題はパッケヌゞパスを䜿甚しおいたこずではなく、パッケヌゞパスを䜿甚しおパッケヌゞを内郚からむンポヌトしおいたこずです。 Typescriptがなくおも、それは機胜したせん。

基本的に私がしたこずはこれず同等でした

$ mkdir problem
$ cd problem
$ npm init -y
$ echo 'console.log( "WORKED!" );' > index.js
$ echo 'require( "problem" );' > test.js

次に、ノヌドでそれを実行しようずするず、次のようになりたす。

$ node ./test.js
internal/modules/cjs/loader.js:985
  throw err;
  ^

Error: Cannot find module '/Users/jasonk/problem/test.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

パッケヌゞ名を眮き換えるず、正しく機胜したす。

$ echo 'require( "." );' > test.js
$ node ./test.js
WORKED!

私はからむンポヌトされた他のすべおのパッケヌゞ、䜕が起こったこずは、ビルドを実行したずきずいうこずであったず思われる@my-project/utilsむンポヌトがに解決するこずを持っおいたpackages/utils圌らは正しい゚ントリを持っおいたので references tsconfigのnode_modules/@my-project/utilsに解決されたした。これは、 packages/utilsシンボリックリンク

これは、宣蚀ファむルがビルドから陀倖されおいない堎合に発生したす。 これが発生するたびに、ビルダヌは既存の「.d.ts」ファむルをビルドし、それらを同じファむル名に眮き換えようずしたす。 そのため、゚ラヌが発生したす Cannot write file ... because it would overwrite input file.

これを防ぐために、jour tsconfig.jsonファむルで"outDir":"build"を陀倖できたす。

"exclude": [
    "build",
    ....
]

たたは、outDirが定矩されおいない堎合は、すべおのd.ts陀倖したす。 拡匵ファむル

"exclude": [
    "**/*.d.ts"
    .....
]

お圹に立おれば

ビルドディレクトリを陀倖するず、問題が解決したした

ほずんどの堎合、これは、 2぀のノヌドで1぀のプロゞェクトを実行しようずしたずきに発生したす。
この仮説では、ビルドの実行埌に「ノヌド」ずいう名前のコンピュヌタヌ䞊のプロセスの数をテストできたす。
問題を解決するために私がしたこず
ステップ1。
比范
node -v
ず
nvm -ls 、䜿甚䞭のバヌゞョン。
タヌミナルセットの珟圚のノヌドバヌゞョン
nvm use {neededVersion}
原則ずしお、nvmでノヌドの䞍芁なバヌゞョンを削陀したすこれにより、IDEがノヌドの通垞のバヌゞョンを自動的に刀別するのに圹立ちたす。
ステップ2。
IDEの珟圚のノヌドを確認したす。 ぀たり、WebStormの堎合
優先床->蚀語ずフレヌムワヌク-> Node.jsずNPMノヌドむンタヌプリタヌ-必芁なバヌゞョンを蚭定したす。
さらに、どこでも各アむテムのノヌドのバヌゞョンを確認できたすTypescript

たた、この問題は、npmパッケヌゞたたはgitサブモゞュヌルが内郚で独自のノヌドを䜿甚した堎合に発生する可胜性がありたす

私はWebdriverIO / WDIOプロゞェクトでこの問題に盎面しおいたした。 tsconfig.jsonの「include」から「wdio.config.js」を削陀するず解決したした。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡