Rollup-plugin-typescript2: デフォルトのtsconfigオプション「include」は、元のtsconfig.jsonのむンデックスによっお䞊曞きされたす

䜜成日 2020幎05月07日  Â·  24コメント  Â·  ゜ヌス: ezolenko/rollup-plugin-typescript2

䜕が起こり、なぜそれが間違っおいるのか

そのバグは本圓に奇劙です。
ある時点で、 typescript2ずプロゞェクトtsconfig.json includeオプションが原因で奇劙な゚ラヌが発生し始めたした。
私はそれがどのように機胜するのか、それがオヌバヌラむドたたは連結するのか、それずも䜕を理解するのかさえ理解しなくなりたした。
次に、この配列をデバッグしお、最終的に䜕が埗られるかを確認する必芁があるず刀断したした。

私のrollup-plugin-typescript2 

  typescript2({
      clean: true,
      tsconfigDefaults: {
        ....
        include: [path.resolve(__dirname, 'styles.d.ts')],
      }
    }),

私のtsconfig.json 

   ...
  "include": ["src", "declaration.d.ts"]
}

結果は
Screenshot 2020-05-07 at 19 44 57

前に蚀ったように、私はこれをデバッグし始めたした、それは毎回ある皮の厄介な結果を䞎えたす。
実際、これらのプロパティを連結するのではなく、むンデックスセルの倀を眮き換えたす。これは、単に驚きをもたらし、開発者の゚クスペリ゚ンスを悪化させたす。

私が意味したのは
tsconfigの配列のむンデックスを0ずし、倀の代わりにtypescript2 configの0むンデックスの䞋に眮きたす。

䟋1

typescript2: ['a']
tsconfig: ['b', 'c']
result: ['b', 'c']

䟋2

typescript2: ['a', 'd']
tsconfig: ['b', 'c']
result: ['b', 'c']

䟋3

typescript2: ['a', 'd', 'e']
tsconfig: ['b', 'c']
result: ['b', 'c', 'e']

それは完党に迷惑です

環境

これが適切かどうかはわかりたせんが
ノヌド13.13.0
OSmacOS Catalina 10.15.4

バヌゞョン

  • タむプスクリプト3.8.3
  • ロヌルアップ2.8.1
  • rollup-plugin-typescript20.27.0

最も参考になるコメント

ここで䜕をしおも、物事を壊さなければならないず思いたす。 ドキュメントずプロパティ名の粟神に埓っお動䜜させるには、基本的に次のようにする必芁がありたす。

  • tsconfigDefaults -これは、以䞋のすべおが深くマヌゞされるオブゞェクトです
  • tsconfig -これは、独自のむンポヌトずすべおの埌に、typescriptから取埗するオブゞェクトです。 ここでのすべおの倀は、 tsconfigDefaults倀を眮き換えたす。 ここにあるすべおの配列は、 tsconfigDefaults配列ず連結されおいたす。
  • tsconfigOverride -これは栞の遞択肢です。 オブゞェクトはただ深くマヌゞされおいたすが、ここの配列は倧芏暡な配列に取っお代わりたす。 したがっお、ここで空のむンクルヌド配列を指定するず、最終的なtsconfigにはむンクルヌドがたったくありたせん。

それは私たちがサポヌトしたいすべおのケヌスをカバヌしたすかナヌザヌが適切な倉曎を加えた埌、たたは私は䜕かが足りたせんか

党おのコメント24件

これにより、 tsconfig.json内の配列の長さがわからないため、 includeできなくなりたす。

面癜いこず、
typescript2 config includeオプションをtsconfigDefaultsからtsconfigOverride
元のtsconfig.json includeオプションをむンデックスで䞊曞きしたす。

぀たり、それは正反察です
でもそれもずおも悪いです

埌もう䞀぀
いく぀かの远加調査の埌
同じ動䜜が他の配列プロパティにも関連しおいるこずに気づきたした

だから私は以前https://github.com/jaredpalmer/tsdx/pull/666#discussion_r404847759でこの問題にぶ぀かったこずがあり、その問題ごずに、それが_.mergeのディヌプマヌゞがどのように機胜するかです。 これはディヌプマヌゞであるため、配列をマヌゞし、むンデックスが配列の唯䞀の識別子です。 それは_予期しない_かもしれたせんが、それは深いマヌゞであり、それが深いマヌゞがどのように機胜するかです。

実際、これらのプロパティは連結されたせんが、むンデックスセルの倀が眮き換えられたす。

  • 代わりに、远加/連結を実行しおもマヌゞはたったく行われず、 tsconfigで䞊曞きする方法はたったくありたせん。 それは私には間違った行動のように思えたす。
  • 代わりに、浅いマヌゞを実行するず、デフォルトの動䜜が䞊曞きされるだけで、予想される動䜜もわかりたせんが、 excludeに関しおtsconfigがどのように機胜するかず䌌おいたす。 exclude 、デフォルトを䞊曞きしたす。

includeずexcludeだけで浅いマヌゞを行うPRを䜜成するこずもできたすが、それは倉曎を_かなり_壊すこずになりたす。 それがすべおのダりンストリヌムナヌザヌにどのように圱響するかはわかりたせん。 TSDXナヌザヌが浅いたたは深いマヌゞを期埅しおいる堎合はIdkですが、深いものを期埅しおいる堎合は䜿甚法が損なわれたす。

typescript2 config includeオプションをtsconfigDefaultsからtsconfigOverride
元のtsconfig.json includeオプションをむンデックスで䞊曞きしたす。

぀たり、それは正反察です

はい、それはtsconfigOverrideが機胜するこずになっおいる方法です、それはオヌバヌラむドです。

同じ動䜜が他の配列プロパティにも関連しおいるこずに気づきたした

はい、それが_.mergeがディヌプマヌゞを行う方法です。したがっお、配列であるtsconfig内のすべおのものに同じ倉曎がありたす。

@ agilgur5返信ありがずう

1私の芳点からは、この動䜜により構成はたったく圹に立たなくなりたす。 アレむ内の䜍眮に関連付けられおいる堎合、構成の信頌性を保蚌するこずはできたせん。

2確かに、それは壊滅的な倉化になるでしょう。 しかし、私たちの方向性が最高のDXを達成するこずである堎合、これを明確で有甚なものにする必芁がありたす。

私はこれを凊理するためのトリックをポケットに入れおいたすが、クリヌンなコヌドの芳点からはノむズが倚いように芋えたす- tsconfig読み取り、 includeプロパティを取埗しお、これを配列ず連結したす。 簡単なはずです。

私のおすすめ
1デフォルトの堎合-デフォルトのプロパティを収集し、元のtsconfigず連結したす。 重耇を削陀したす。
2オヌバヌラむドの堎合-オヌバヌラむドオプションのみを適甚したす

デフォルトは通垞、オヌバヌラむドされたずきに連結されず、オヌバヌラむドされたす。 そしお、前述したように、連結により、デフォルトをtsconfigオヌバヌラむドするこずは_䞍可胜_になりたす。 それは私にはさたざたな意味で間違った行動のように聞こえるので、私はそれを匷くお勧めしたせん。

すべおのオプションが混乱しおいるず思いたすが、これらのいずれかが「最高のDX」であるこずに同意するかどうかはわかりたせん。 浅いマヌゞは、 tsconfigがデフォルトのexcludeでどのように機胜するかに最も近いものですが、トレヌドオフがなければ実珟したせん。
䞀般に、重倧な倉曎には倚くの考慮を払う必芁がありたす。そのため、私はそれを取り䞊げたした。䞋流の圱響は重芁です。 TSDXは、そのような倉曎に曎新するために、重倧な倉曎をリリヌスする必芁もありたす。

@ agilgur5は問題ありたせん。デフォルトを䜿甚するこずも、オヌバヌラむドするこずもできたせん。
原因 そのむンデックスに倀が曞き蟌たれないずいう保蚌はありたせん。
さらに、配列の倀ずしおundefinedを䜿甚し、必芁な倀をさらに远加するこずで、すべおを回避できたす。 そしお、このシステムにはギャップがあるこずがわかりたしたか ただ玠晎らしい。

ケヌス

  1. 「include」configプロパティ内にd.tsタむプを远加したいず思いたす。
  2. ナヌザヌは自分のsrcディレクトリを「include」内に眮き、別のプロゞェクト固有のd.tsタむプをsrc倖に眮きたす。
  1. ['config.d.ts`]
    2。['src'、 'some.d.ts'、 'another.d.ts']
  2. 結果['src'、 'some.d.ts'、 'another.d.ts']

ご芧のずおり、これを適切に構成する方法はありたせん。 tsconfig.jsonを読み、その「include」プロパティを取埗しお、これを['src'、 'some.d.ts'、 'another.d.ts'、 'config.d.ts']にマヌゞする必芁がありたす。
そしお、これは完党なオヌバヌヘッドだず思いたす。

その間、私は問題が䜕であるかを理解したした。 他の人はそれを理解せず、圌らにずっお䜕がうたくいかないかを理解するために圌らの貎重な時間を費やすかもしれたせん。
そしお、あなたの最初のメッセヌゞの埌、私はすでに少なくずも2぀の関連する問題を芋おきたした。 そしお、それはどんどん続きたす。

すべおをそのたたにしおおくず䜿えなくなる、䜕も保蚌できないのでブラックボックスだず思いたす。
「奜き」/「嫌い」ずいう個人的な奜みの䜙地はありたせん。
これは䜿甚するこずも䜿甚しないこずもできたす。 そしお、それはできたせん。

これに関わっおいる他の人の意芋を集めるのに問題はありたせん。
そしおもう1぀、珟圚の゜リュヌションを維持するのに問題はありたせん。䞊蚘のハックがあり、これを䜿甚する準備ができおいたす。 しかし、私は、この゜リュヌションを透明にするこずの問題が䜕であるかを理解しおいたせん。それは、重倧な倉曎を䌎うずいう事実に瞛られるこずはありたせん。

぀たり、私がすでに耇数の異なるオプションを䞎えおいる間、あなたはここであなた自身の奜みを䞎えおいるずいうこずです。 その奜みである連結が根本的に壊れおおり、同様に盎感的でなく、たったく「透明」ではない理由に぀いおは、すでに2回述べたした。 繰り返しになりたすが、連結は単なる砎壊的な倉曎ではなく、文字通りオヌバヌラむドを䞍可胜にしたす。 もう䞀床繰り返したす、䞍可胜です。
連結でオヌバヌラむドできないこずは「奜み」ではありたせん。それは事実です。

繰り返したすが、オヌバヌラむドできない「デフォルト」はデフォルトではなく、それが芁件です。 「デフォルト」を芁件に倉曎するこずは意味がなく、間違った動䜜です。

珟圚、ディヌプマヌゞをオヌバヌラむドできたすが、連結をオヌバヌラむドするこずはできたせん。 既存のナヌスケヌスを䞍可胜にするこずは意味がありたせん。

私はたた、根本的に壊れおいない代替オプションをすでに2回䞎えたした。これは、浅いマヌゞです。 もう䞀床繰り返したすが、浅いマヌゞを䜿甚しおこれを解決するこずもできたす。
それが良いかどうかは議論の䜙地がありたす。 すべおにトレヌドオフがありたす。

私は以前にバグを修正するためにここに貢献したしたコヌドベヌスを読んだので_.mergeだず知っおいたすそしお私が維持しおいるラむブラリはこのラむブラリの䜿甚のかなりの郚分を占めおいたす〜10、私はここで論点を述べるだけではありたせん...

蚀うたでもなく、これは倉曎を壊すこずなく解決できたす。 tsconfigConcatやtsconfigDefaultShallowなどの新しいオプションを远加できたす。

遞択肢は1぀しかなく、それは壊れおいお、既存のナヌスケヌスを䞍可胜にしなければならないず蚀うのは、単玔に真実ではありたせん。

ここで䜕をしおも、物事を壊さなければならないず思いたす。 ドキュメントずプロパティ名の粟神に埓っお動䜜させるには、基本的に次のようにする必芁がありたす。

  • tsconfigDefaults -これは、以䞋のすべおが深くマヌゞされるオブゞェクトです
  • tsconfig -これは、独自のむンポヌトずすべおの埌に、typescriptから取埗するオブゞェクトです。 ここでのすべおの倀は、 tsconfigDefaults倀を眮き換えたす。 ここにあるすべおの配列は、 tsconfigDefaults配列ず連結されおいたす。
  • tsconfigOverride -これは栞の遞択肢です。 オブゞェクトはただ深くマヌゞされおいたすが、ここの配列は倧芏暡な配列に取っお代わりたす。 したがっお、ここで空のむンクルヌド配列を指定するず、最終的なtsconfigにはむンクルヌドがたったくありたせん。

それは私たちがサポヌトしたいすべおのケヌスをカバヌしたすかナヌザヌが適切な倉曎を加えた埌、たたは私は䜕かが足りたせんか

@ezolenkoは玠晎らしいサりンドで、䜿甚するのが理にかなっおいたす

@ezolenkoなぜあなたが物事を壊さなければならないのか分かりたせんか 私はすでに壊れおいないオプションを䞎えたした。

あなたがリストしたものが「ドキュメントの粟神ずプロパティ名」をどのように反映しおいるかはわかりたせん。ドキュメントには次のように曞かれおいるからです。

tsconfigDefaultsずしお枡されたオブゞェクトは、ロヌドされたtsconfig.jsonずマヌゞされたす。 typescriptに枡される最終的な構成は、 tsconfigDefaults倀が、ロヌドされたtsconfig.json倀に眮き換えられた結果になりたす。
[...]
これはディヌプマヌゞオブゞェクトのマヌゞ、配列の連結、プリミティブの眮換などであり、 verbosityを3に増やし、予期しないこずが発生した堎合はparsed tsconfigを探したす。

「マヌゞ枈み」、「眮換枈み」、「ディヌプマヌゞ」ず衚瀺されたす。これらはすべお、デフォルトを眮換しおオヌバヌラむドするこずを意味したす。 「他の郚分ずは異なる」「連結」ぞの単䞀の参照がありたすが、深いマヌゞは実際には連結したせん。 5぀の参照は1぀のこずを蚀い、6番目は正しくありたせん。 私には、間違っおいる6番目の参照を修正する必芁があるように聞こえたすが、5぀の正しい参照を間違った6番目に倉曎する必芁はありたせん。

lodashは事実䞊の暙準であり、マヌゞの定矩は連結するこずではありたせん。 デフォルトの定矩は、同じプロパティ倀を_not_concatenatedに蚭定するずオヌバヌラむドされるずいうものです。

_.defaults({ a: ['a'] }, { a: ['b', 'c'] });
// => {a: ['a']}
_.defaultsDeep({ a: ['a'] }, { a: ['b', 'c'] });
// => {a: ['a', 'c']}

連結オプションを远加したい堎合は、別の構成にする必芁があるず思いたす。これは、ドキュメント内の5぀以䞊の参照ずも䞀臎せず、定矩でも䜿甚法でも、デフォルトの意味ではないためです。図曞通。

たた、 tsconfigOverrideず独自のドキュメントで察称性を砎りたす。

  • tsconfigOverride  {}
    tsconfigDefaults参照しおください。

デフォルトがオヌバヌラむドされるこずを期埅しおいたす。぀たり、デフォルトを連結するこずは、信じられないほど盎感的ではありたせん。 ディヌプマヌゞは配列にずっお盎感的ではないかもしれたせんが、ドキュメントにはそれがディヌプマヌゞであるずはっきりず曞かれおおり、むンデックスが関連しおいるため、それが問題であるこずがすぐにわかりたした。 たた、バグに぀いおは報告したせんでした。これは、ドキュメントに蚘茉されおいるこずであり、ディヌプマヌゞにリンクしおいるためです。これは意図した動䜜であり、バグではありたせん。

私が蚀ったように、配列を浅くマヌゞする方が盎感的かもしれたせん。それがtsconfig _ itself_が実際に機胜する方法だからです。 私は䞊蚘のリンクしたずしお、 tsconfig _itself_あなたが远加したずきに連結しおいたせんexclude 、それが既存の䞊曞きされたすexclude 。

したがっお、concatenateは、ドキュメント内の5぀以䞊の参照、マヌゞの定矩、デフォルトの定矩、たたはtsconfig自䜓の動䜜ず䞀臎したせん。 そしお、それは他のオプションの察称性ずドキュメントを壊したす。 それがどのように盎感的かわかりたせん。

そしお、䜕床も蚀ったように、オヌバヌラむドするのではなく、非垞に盎感的でない連結にするず、特定のナヌスケヌスが

https://github.com/jaredpalmer/tsdx/blob/17ffcd215f78a4e9d6936644cbeab332f6439088/src/createRollupConfig.ts#L149 -L178

独自のexcludeを远加するず、蚭定したデフォルトが䞊曞きされるこずが目的です。 デフォルトは、他のすべおのプロパティ名ず同様に、プロパティ名を蚭定しおいない堎合にのみ適甚されたすこれも、デフォルトの定矩であり、すべおのラむブラリでデフォルトがどのように機胜するかです。

これを連結に倉曎した堎合、ナヌザヌはデフォルトのexcludeをオヌバヌラむドする方法がなくなり、デフォルトをオヌバヌラむドするこずはtsconfigのデフォルトのexcludeも出荷しおいるため、 tsconfig _itself_で可胜であっおも、 tsconfigのデフォルトをオヌバヌラむドするこずは_䞍可胜_になりたす。それ。

なぜ私がここで壊れた蚘録のように話しおいるのかわからないのですが、_゚コシステム党䜓_で_既存の定矩_ず_既存の䜿甚法_を繰り返しおいたす。

@ agilgur5

そしお、私が䜕床も蚀ったように、それをオヌバヌラむドするのではなく、非垞に盎感的でない連結にしたす
特定のナヌスケヌスを䞍可胜にしたす。 TSDXの䜿甚法は次のずおりです。
https://github.com/jaredpalmer/tsdx/blob/17ffcd215f78a4e9d6936644cbeab332f6439088/src/createRollupConfig.ts#L149 -L178

この構成は簡単に䞭断される可胜性があり、なぜこれがあなたに明らかでないのか理解できたせん。 ラむブラリを壊れやすくしたくないので、この問題を䜜成したした。

面癜いこずに、 @ ezolenkoず私は、

デフォルトは、プロパティ名を蚭定しおいない堎合にのみ適甚されたす

私はデフォルトの動䜜に同意し

デフォルトを䞊曞きするこずは䞍可胜です

問題は、なぜナヌザヌはラむブラリの䜜成者が犁止しおいるものにアクセスできる必芁があるのか​​ずいうこずです。

䞊曞きできないtsconfig構成を掻甚する必芁がありたすが、同時に、プリセットを拡匵する機䌚を䞎える必芁がありたす。 そしおこれが芁点です。

解決策は、新しいAPIの蚭蚈にのみありたす。

この構成は簡単に䞭断される可胜性があり、なぜこれがあなたに明らかでないのか理解できたせん。 ラむブラリを壊れやすくしたくないので、この問題を䜜成したした。

あなたは私がリモヌトで蚀わなかった蚀葉を私の口から取り出しおいたす。 私はそれができないずは蚀いたせんでしたし、壊れやすいずも蚀いたせんでした。 _あなたの_゜リュヌションは、デフォルトの_゚コシステム党䜓_やドキュメント自䜓の_既存の定矩_にも_既存の䜿甚法_にも䞀臎しないず蚀ったばかりです。 デフォルトの定矩党䜓を砎るこずは明らかに間違った振る舞いです。
私は䜕床か述べおきたように、私の提案は、浅いマヌゞ配列の代わりに、すなわちにしたtsconfigオヌバヌラむドtsconfigDefaults 、それはすべおの非配列プロパティの堎合ず同様ずのようにtsconfig _itself_䜜品。
䜕床か蚀ったように、それは重倧な倉曎たたは非重倧な倉曎で行うこずができたす。

口から蚀葉を出さないでください。 䜕床も繰り返したしたが、䜜り䞊げるのではなく、実際に曞いたものを読んでください。

問題は、なぜナヌザヌはラむブラリの䜜成者が犁止しおいるものにアクセスできる必芁があるのか​​ずいうこずです。

tsconfigはそれを犁止しおいたせんでした、TSDXはそれを犁止しおいたせんでした、そしおrollup-plugin-typescript2もそれを犁止しおいなかったので、あなたが䜕を指しおいるのかわかりたせん。

䞊曞きできないtsconfig構成を掻甚する必芁がありたすが、同時に、プリセットを拡匵する機䌚を䞎える必芁がありたす。 そしおこれが芁点です。

解決策は、新しいAPIの蚭蚈にのみありたす。

はい、これにtsconfigConcatオプションを远加できたす。これは、「新しいAPI」になりたす。 デフォルトの定矩党䜓を再発明するこずによっお珟圚のAPIを砎るず、䞀連の新しい問題ず新しい盎感的でない動䜜が䜜成されたす。 ディヌプマヌゞは配列にずっお盎感的ではないかもしれたせんが、それでも_正しい_動䜜です。 連結は、デフォルトが意味するものではないため、単に間違った動䜜です。

tsconfigConcatはナヌスケヌスを解決し、名前に文字通り連結が含たれおいるため、より盎感的です。
tsconfigDefaultsを「連結」を意味するように倉曎するのは、それが5回目、_デフォルトの意味ではない_ためではありたせん。

デフォルト= \ =連結。 それは私の意芋ではありたせん、それが定矩です。

@ agilgur5申し蚳ありたせんが、真剣に受け止めるこずはできたせん。
あなたの文章はすべお物議を醞しおいたす、私はそれにうんざりしおいたす。

私は単に、珟圚のAPIはそれを䜿った適切な䜜業をたったく蚱可しおいないず䞻匵し、これがそれを倉曎する理由です。
もうこれを続ける぀もりはありたせん。

さお、私は人々の口から蚀葉を取り出したり、実際の蚀葉を読んだり、物事を䜜り䞊げたり、寄皿者のキャラクタヌを攻撃したり、0のリンクを提䟛したり、0の遞択肢を提䟛したり、単䞀のオプションのみを怜蚎したり、他の遞択肢を怜蚎したりしたせんでした、それはあなたでした。

助けようずしおいるだけで、実際の定矩、実際のナヌスケヌス、および実際の代替案を提䟛しおいる寄皿者を攻撃したい堎合は、それがあなたの浞透しおいるず思いたすshrug

私がその郚分を曞いおいるずき、私はlodashマヌゞが実際に配列をマヌゞするそれらをむンタヌリヌブするか䜕かずいう印象を受けおいたず思いたす。 たたは、配列に䜕が起こるかに぀いおも泚意を払っおいたせんでした。 むンデックスを芁玠名ずしお䜿甚しお配列の内容を䞊曞きするようですそうですか配列は元々真の配列ではなく、たたたたキヌの番号が付いた蟞曞であるずいうjavascriptのこずですか、珟時点でのドキュメントはありたす。

理想的には、デフォルト/メむン/オヌバヌラむドのtsconfigsオプションにより、スカラヌ倀ず配列の䞡方のすべおのパラメヌタヌを同じ驚くべき方法でカスタマむズできるようにする必芁がありたす。 むンデックスに基づいお配列芁玠を眮き換えるLodashの方法には、1぀の倧きな欠点がありたす。リテラルのスパヌス配列を䜜成できないこずです undefinedの束で配列をパディングする可胜性がありたすか。 ぀たり、ロヌルアップ構成は動的に構築する必芁があり、jsonファむルであるtsconfigはそれらをたったく実行できたせん。

リテラルのスパヌス配列を䜿甚しおも、むンデックスに基づいお芁玠を眮き換えるこずは非垞に脆匱です。

䞀方、通垞このように動䜜するものが他にない堎合、連結は驚くべきこずです。 そしお、それだけでは以前の倀を削陀するこずはできたせん。

私が最初に提案したように連結ず眮換を切り替えるこずは、二重に驚くべきこずです。

@ agilgur5が提案したように、䞡方のマヌゞを倉曎しお配列を倧芏暡に眮き換えるこずは、おそらく最も驚くべきオプションではありたせん。保持したい倀を繰り返す必芁がありたすが、倀を削陀できたす。 ただし、これはただ重倧な倉曎であり、そのための構成を曞き盎す必芁がありたすhttps://xkcd.com/1172/を参照。

これらのオプションの動䜜を倉曎するか、新しいセットを䜜成しお既存のオプションを非掚奚にしお譊告を衚瀺するこずができたす。

どこかで重芁なポむントを逃した堎合は申し蚳ありたせんが、スレッド党䜓をスキップしただけです

@ezolenko次の方法がわかりたす

状況ず動機を芋おみたしょう
開発者は、ロヌルアッププラグむンを介しおtypescriptに必芁な構成をいく぀か远加したいず考えおいたす。
この堎合、開発者が蚭定を安党に远加するこずを劚げたり、構成ずロヌルアップ構成をマヌゞするずきに他の蚭定を倱ったりしないようにする必芁がありたす。

これは私たちに䜕を䌝えたすか セマンティクスから始めたしょう

前にも蚀ったように

私はデフォルトの動䜜に同意したす。 tsconfigに察応するプロパティがない堎合にのみconfigdefaultを適甚するこずは理にかなっおいたす...

これを完党に再蚭蚈するこずができたす。

私の提案は次のずおりです。

  1. 元のtsconfig察応するプロパティがない堎合は、 tsconfigDefaultsプロパティを適甚したす。
  2. tsconfigOverrideがこれを凊理する必芁がありたす。
    2.1スカラヌ倀で以前ず同じように機胜するはずです。
    2.2配列のプロパティを連結する必芁がありたす。 おそらく、これは䜕も壊しおはならず、構成の動機を満たさなければなりたせん

3番目の远加のrpt2オプションを避けようずしおいたす。これは、このAPIを少なくずも50耇雑にし、開発者はこれを理解できなくなるためです。

@ agilgur5あなたが蚀う珟実ず蚀葉が同じものではないのは玠晎らしいこずです。

たた、メヌル通知のおかげで、8回線集せずに元のメッセヌゞを読んで、人の目には良く芋えるようにしたした。
誰もあなたを攻撃したくなかった、さらに、誰もそれをしなかった。
あなたは単に攻撃的であるこずをやめ、このスレッドで矛盟したスピヌチを曞くこずをやめるように求められたした。

  • 0リンク-私は問題を理解し、それを完党に説明し、䟋を瀺し、さらにはスクリヌンショットを䞎えるために倚くの時間を費やしたした。 たた、TSDXに぀いおも調べたずころ、確認したため、構成が壊れやすいずのこずでした。 そしお最も重芁なこずに、私は黙っおいたせんでしたが、これに盎面しおいる人々のために問題を゚スカレヌトするためにこの問題を䜜成したした。
  • 0の遞択肢-泚意深くお読みください。 私は最初のメッセヌゞから解決策を提䟛し始めたした。
  • 蚀葉を出す-萜ち着いお、少なくずもこのスレッドでは自己陶酔的であるこずをやめなさい、私がこのように働くのは䞍快です。

@maktarsisどのようにあなたのアプロヌチで開発者はtsconfigから包含たたは陀倖゚ントリを削陀するこずができたすか シナリオは次のずおりです。他の堎所で䜿甚されおいるtsconfig.jsonがあり、json自䜓に觊れずにロヌルアップで䜿甚したいが、䜕らかの理由で陀倖配列から行を削陀したい。

@ezolenko私はあなたのこずを理解したした。

圓然、䞊蚘のように、これは䞍可胜です。
しかし、私たちはモチベヌションではなく可胜性に぀いお話しおいるのです。

陀倖を曞き盎す必芁がある状況はただわかりたせん。
それでも、開発者の「陀倖」を䞊曞きする必芁はないず私は考えおいたす。 蚀い換えれば、私はその理由を想像するこずはできたせん。
「䜕らかの理由で」の理由を理解する必芁がありたす。

いずれにせよこの可胜性を持たせたい堎合は、連結甚の远加のAPIを提䟛する必芁がありたす。
しかし、ご存知かもしれたせんが、それは請求されおおらず、単に䞍芁かもしれないず思いたす。
「陀倖」から䜕かを陀倖する必芁はたったくないかもしれたせんが、逆にするず、構成の理解が耇雑になりたす。

配列に存圚しないものを远加するこずず、配列から䜕かを削陀するこずの䞡方が必芁です。 浅いマヌゞでは、远加ず削陀の䞡方が、アレむ党䜓を倉曎を加えおより高いレベルで耇補するこずによっお行われたす。 あたり䟿利ではありたせんが、䜿いやすいです。

これは"esModuleInterop": trueの堎合にも圓おはたり、䞀郚の環境ではラむブラリが機胜しなくなりたした。

config.jsonの圹に立たないコンパむラオプション

{
   ...
  "compilerOptions": {
       ...
      "esModuleInterop": true,
  },
}

rollup-configの䟿利なコンパむラオプション

typescript({
    useTsconfigDeclarationDir: true,
    tsconfigOverride: {
      esModuleInterop: true,
    },
  }),

@maktarsisの最初の提案は、私にずっお予想される動䜜でした

元のtsconfigに察応するプロパティがない堎合は、tsconfigDefaultsプロパティを適甚したす。

^䞊蚘のコメントはincludeたたは配列甚でtsconfigDefaultsすでに行っおいるこずです。
たた、私ずTSDXはesModuleInterop倚甚しおいるので、 tsconfig.jsonで機胜するこずはわかっおいたすが、そのコメントが䜕を意味するのかわかりたせん。 投皿された蚭定にもcompilerOptionsがありたせん。次のようになりたす。

js typescript({ useTsconfigDeclarationDir: true, tsconfigOverride: { compilerOptions: { esModuleInterop: true, }, }, }),

しかし、それは意図したずおりにオヌバヌラむドしお機胜したす。

ここで、浅いマヌゞがこのリポゞトリで数回蚀及されおいるこずに泚意しおください86ここで行ったように、TSの浅いマヌゞ動䜜に぀いお蚀及しおいたす、 https//github.com/ezolenko/rollup-plugin-typescript2/issues/72 #issuecomment -383242460、およびhttps://github.com/ezolenko/rollup-plugin-typescript2/issues/208#issuecomment -594237841

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