#author("2023-03-15T02:48:26+00:00","default:admin","admin") #author("2023-03-15T02:48:41+00:00","default:admin","admin") -[[2022年秋版 最新React/Typescript開発環境の作成:https://qiita.com/kztmk_media_pep/items/11d063a155d414a102b1]] -[[統率の取れた実装をするためのReactとTypeScriptのTips:https://hireroo.io/journal/tech/react-typescript-tips]] -[[TypeScript再入門覚書 ① Atom環境構築編:http://qiita.com/junkjunctions/items/5938a6d706548cd91218]] -[[TypeScript再入門覚書 ② npmとwebpackでプロジェクト作成:http://qiita.com/junkjunctions/items/13c8e87044bd6be31b0d]] -[[TypeScript再入門覚書 ③ React & Redux:http://qiita.com/junkjunctions/items/1e05edae6b28f9e6f033]] -[[Hello React and TypeScript:https://charleslbryant.gitbooks.io/hello-react-and-typescript/content/index.html]] -[[React+TypeScriptもいいぞ:https://www.slideshare.net/mitsuruogawa33/reacttype-script]] -[[React + Redux + TypeScript でWebアプリを作った感想・勉強法と Angular との比較:http://qiita.com/star__hoshi/items/34eb4ccafcfa100b5cad]] -[[TypeScript1.6 + React 書いてみてハマったポイントとか:http://qiita.com/Linda_pp/items/ff0feac7e34a65657b3c]] -[[React JSX with TypeScript(1.6):http://qiita.com/Quramy/items/70f97e68d21859d91ed8]] -[[React & Webpack:https://www.typescriptlang.org/docs/handbook/react-&-webpack.html]] -[[React + TypeScript + Webpackの最小構成:http://qiita.com/uryyyyyyy/items/63969d6ed9341affdffb]] -[[React + Redux + TypeScriptの最小構成:http://qiita.com/uryyyyyyy/items/3ad88cf9ca9393335f8c]] -[[React TypeScript webpack HMR 最小構成:http://qiita.com/dasakai/items/f7b294779b5a78dc6c84]] -[[React Native + TypeScript入門:http://qiita.com/uryyyyyyy/items/163027b4fb8606f4cdff]] -[[React & Webpack:http://js.studio-kingdom.com/typescript/tutorials/react_and_webpack]] -[[TypeScriptでReactを書く(1):JSX:http://qiita.com/KeitaMoromizato/items/110cf26b8602a415f443]] -[[create-react-app で TypeScript の環境を作る:http://qiita.com/ehr174/items/85b7cb7e7c93efef8889]] **開発手順 [#bf53b568] *開発手順 [#t7182421] -プロジェクト作成(create-react-app使用)【推奨】 $ create-react-app --scripts-version=react-scripts-ts [プロジェクト名] $ cd [プロジェクト名] $ npm start $ rm -rf src/* --create-react-app で --scripts-version=react-scripts-ts オプションを付けて実行 -プロジェクト作成(昔のやり方?) $ mkdir [プロジェクト名] $ cd [プロジェクト名] $ npm init $ npm install --save react react-dom @types/react @types/react-dom $ npm install --save-dev webpack webpack-dev-server --実際のアプリケーションで使うモジュールは --save --開発時のみ必要なモジュールは --save-dev --[プロジェクトフォルダ]/package.json : "scripts": { "build": "webpack --progress --colors", "start": "webpack-dev-server" }, : --TypeScript関連パッケージのインストール $ npm install --save-dev typescript awesome-typescript-loader source-map-loader --[プロジェクトフォルダ]/tsconfig.json { "compilerOptions": { "outDir": "./dist/", "sourceMap": true, "noImplicitAny": true, "module": "commonjs", "target": "es5", "jsx": "react" }, "include": [ "./src/**/*" ] } --[プロジェクトフォルダ]/webpack.config.js module.exports = { entry: "./src/index.tsx", output: { filename: "bundle.js", path: __dirname + "/dist" }, // webpackの出力をデバッグするためのsourcemapsを有効化 devtool: "source-map", resolve: { // 解決可能な拡張子に'.ts'と'.tsx'を追加 extensions: ["*", ".webpack.js", ".web.js", ".ts", ".tsx", ".js"] }, module: { loaders: [ // '.ts'または'.tsx'の全てのファイルを、'awesome-typescript-loader'で扱う { test: /\.tsx?$/, loader: "awesome-typescript-loader" } ], rules: [ { test: /\.tsx$/, exclude: /node_modules/, loader: 'awesome-typescript-loader', } ], }, // インポートしたモジュールのパスが下記のいずれかにマッチする場合、 // それに相当するグローバル変数が存在するものとしてそれを使用します。 // 依存性の全てを扱うことを避けることができるようになり、 // ビルド間でそれらのライブラリがキャッシュ可能になるため重要です。 externals: { "react": "React", "react-dom": "ReactDOM" }, }; -src/index.js(アプリ本体が App.js の場合)... index.js は必須 import React from 'react'; import { render } from 'react-dom'; import App from './App'; render( (<App />), document.getElementById('root') ); -コンパイル・実行 $ npm run build $ npm start