JavaScriptのCRAプロジェクトは活字体、NPX-作成反応するアプリ私のアプリ--typescriptプロジェクトや一般的なプロジェクトのjsによって生成された差分を初めて目への移行を作成するには
1.接尾.tsx、だけでなく、新たに追加(ルートディレクトリ)の2つのファイルを変更するだけで、プロジェクトディレクトリの観点から、
1⃣️のsrc /反応-APP-env.d.ts
// / <タイプ= "ノード" /参照> // / <参照タイプは= "反応する" /> // / <基準タイプ= "-DOMに反応" /> {名前空間NodeJSを宣言 インターフェースProcessEnv { 読み取り専用NODE_ENV: '開発' | 「生産」| 「試験」。 読み取り専用PUBLIC_URL:文字列。 } } モジュールを宣言 '* .BMP' { constのSRC:文字列。 輸出デフォルトのSRC; } モジュールを宣言 '* .GIF' { constのSRC:文字列。 輸出デフォルトのSRC; } モジュールを宣言 '* .JPG' { constのSRC:文字列。 輸出デフォルトのSRC; } モジュールを宣言 '* .JPEG' { constのSRC:文字列。 輸出デフォルトのSRC; } モジュールを宣言 '* .PNG' { constのSRC:文字列。 輸出デフォルトのSRC; } モジュールを宣言 '* .webp' { constのSRC:文字列。 輸出デフォルトのSRC; } モジュールを宣言 '* .SVG' { インポート *「反応」から反応します。 輸出のconst ReactComponent:React.FunctionComponent <React.SVGProps <SVGSVGElement >> ; constのSRC:文字列。 輸出デフォルトのSRC; } モジュールを宣言 '* .module.css' { CONSTクラス:{読み取り専用[キー:文字列]:文字列}。 輸出デフォルトのクラス。 } モジュールを宣言 '* .module.scss' { CONSTクラス:{読み取り専用[キー:文字列]:文字列}。 輸出デフォルトのクラス。 } モジュールを宣言 '* .module.sass' { CONSTクラス:{読み取り専用[キー:文字列]:文字列}。 輸出デフォルトのクラス。 }
2⃣️tsconfig.json
{ "compilerOptions" :{ "ターゲット": "ES5" 、 "LIB" : "DOM" 、 "dom.iterable" 、 "esnext" ]、 "allowJs":真、 "skipLibCheck":真、 "esModuleInterop":真、 "allowSyntheticDefaultImports":真、 "厳密":真、 "forceConsistentCasingInFileNames":真、 "モジュール": "esnext" 、 "moduleResolution":「ノード" 、 "resolveJsonModule":真、 "isolatedModules":真、 "noEmit":真、 "JSXは": ""反応します }、 "含める" :[ "SRC" ] }
ビューのWebPACKの構成の観点から2、CRAは私たちに、考慮すべき多くのことを支援してきました!私たちは、WebPACKの構成であまりにも多くの時間を費やす必要はありません
// 設定/ webpack.config.js CONST useTypeScript = fs.existsSync(paths.appTsConfig)。
ファイルwebpack.config.js最初のプロジェクトのルートディレクトリに存在することを検出しますtsconfig.jsonのいずれかのスタートアップコンフィギュレーションには対応して、ファイルのWebPACK
プロジェクトは、TSファイルをしようとするつもりはない梱包、対応するファイル拡張子完了、WebPACKのを見つけることであれば、JSを追加
解決:{ 拡張子:paths.moduleFileExtensions .MAP(EXT => '。$ {EXT} `) .filter(EXT => useTypeScript ||!ext.includes( 'tsの' ) }
両者の違いを比較して、我々は今、簡単にプロジェクトのjs TSプロジェクトに移行することができます
1.対応する依存関係をインストールします。
種類/冗談@種類@ NPM種類@ --save typescriptですインストール/ノード/タイプ@反応/反応し、DOM
2.上記の2つのファイルは、ローカルプロジェクト、需要と書かれたTSのその後の発展にコピーします
3.どのようにJS「allowJs」ファイルtsconfig.json実際には、ファイルおよびTSXが共存しない:真はこれを行っているために