React + Typescript + Webpack 開發環境配置
對於複雜或多人開發的 React
專案來說,管理和使用每個元件的 props
、 state
或許會成為一件讓人頭痛的事情,而為每一個元件寫文件,成本也會比較大,對專案的開發效率也不是最理想的。
Typescript
給 React
帶來很多好處:
- 在元件頭部定義
interface
,讓每個人在拿到元件的第一時間就可以很明確知道該元件需要使用的props
和state
; - 在編譯中發現問題,減少執行時的報錯;
- 可以在編輯器中實現實時型別校驗、引用查詢;
- 約束型別,在混合多語言環境中降低風險,等。
且配置也是非常簡單,步驟如下。
檔案目錄
.
├── build # 前端配置檔案
│ ├── index.html
│ ├── webpack.config.js
├── app # 前端目錄
├── .gitignore
├── package.json
├── tsconfig.json
└── tslint.json
配置流程
建立專案
mkdir my-project && cd my-project
npm init
安裝依賴
npm i -g webpack webpack-dev-server
npm i --save react react-dom @types/react @types/react-dom
npm i --save-dev ts-loader source-map-loader
npm link webpack webpack-dev-server typescript
配置 webpack
/* build/webpack.config.js */
const config = {
entry: './app/index.tsx',
output: {
filename: 'app.bundle.js',
path: './public',
publicPath: '/assets'
},
devtool: 'source-map',
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js']
},
module: {
loaders: [
{
test: /\.tsx?$/,
loader: 'ts-loader'
}
],
preLoaders: [
{
test: /\.js$/,
loader: 'source-map-loader'
}
]
},
devtool: 'eval'
}
module.exports = config
配置 tsconfig
/* tsconfig.json */
{
"compilerOptions": {
"outDir": "./public/",
"sourceMap": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es5",
"jsx": "react"
},
"files": [
"./app/index.tsx"
]
}
至此,基本配置已經完成,後面建立好一個入口頁面和entry
檔案就可以跑起來了:
<!-- build/index.html -->
<!doctype html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
<title>Hello world</title>
<script src="http://localhost:8080/webpack-dev-server.js"></script>
</head>
<body>
<div id="app"></div>
<script src="assets/app.bundle.js"></script>
</body>
/* app/index.tsx */
import * as React from 'react'
import { render } from 'react-dom'
interface IAppProps {}
interface IAppState {}
class App extends React.Component<IAppProps, IAppState> {
public render(): JSX.Element {
return (
<div>
Hello world
</div>
)
}
}
render(<App />, document.getElementById('app'))
啟動專案
webpack-dev-server --inline --config build/webpack.config.js --content-base build --open
:smirk: :smirk: :smirk: 出來吧神龍
簡單的說明
Webpack 配置
Webpack配置其實是一件很簡單的事情,這也是他具備強大競爭力的重要因素。
從配置檔案中可以看出,裡面無非就是entry
、output
和loader
,如果需要編譯CSS,在loader
裡面加一個即可:
npm i --save-dev style-loader css-loader
/* build/webpack.config.js */
const config = {
// ...
module: {
loaders: [
{
test: /\.css/,
loader: 'style-loader!css-loader'
}
],
// ...
},
// ...
}
專案啟動
專案啟動的命令過長,放進 package.json
的 scripts
就好了:
/* package.json */
{
"scripts": {
"dev": "webpack-dev-server --inline --config build/webpack.config.js --content-base build --open",
},
}
再執行以下命令試試:
npm run dev
tslint
在開發中如果有個約束程式碼的工具能夠讓程式碼更加優雅,以前用的是 eslint
,如果用 .tsx
就不能生效了,這裡推薦使用 tslint
:
npm i -g tslint
cd my-project
tslint --init
這樣會在專案檔案中建立一個現成的 tslint
配置檔案: tslint.json
,個性化方案可以自行設定。
參考
webpack 新官網
webpack dev server
tsconfig.json 配置文件
style-loader
tslint
原文
原文地址:React + Typescript + Webpack 開發環境配置
文章作者:Heleth
版權宣告:自由轉載-非商用-非衍生-保持署名(創意共享3.0許可證) 轉載請註明出處
相關文章
- Webpack 配置 React 開發環境WebReact開發環境
- webpack配置React開發環境(上)WebReact開發環境
- 使用webpack搭建react開發環境WebReact開發環境
- react 配置開發環境React開發環境
- 使用Webpack配置React和Vue開發環境【超實用】WebReactVue開發環境
- react+webpack+webstorm開發環境搭建ReactWebORM開發環境
- 基於Webpack搭建React開發環境WebReact開發環境
- Webpack(開發、生產環境配置)Web
- 搭建 react + typescript + ant design 開發環境ReactTypeScript開發環境
- Webpack 4.x搭建react開發環境WebReact開發環境
- 從零開始搭建webpack+react開發環境WebReact開發環境
- Mac配置React-Native開發環境MacReact開發環境
- 3、搭建TypeScript開發環境TypeScript開發環境
- TS(TypeScript)— 搭建開發環境TypeScript開發環境
- 教你webpack、react和node.js環境配置(上篇)WebReactNode.js
- 手摸手的教你配置一個基於webpack4的react開發環境WebReact開發環境
- 配置React的Babel6和Webpack2環境ReactBabelWeb
- Webpack4 學習筆記八 開發環境和生產環境配置Web筆記開發環境
- 開發環境配置開發環境
- webpack+react專案初體驗——記錄我的webpack環境配置WebReact
- emacs開發環境配置(4)——rust開發環境Mac開發環境Rust
- 從零搭建前端開發環境----React+Ts+Webpack基礎搭建前端開發環境ReactWeb
- React+webpack+es6的環境配置及demo改寫ReactWeb
- 從零開始搭建一個 Webpack 開發環境配置(附 Demo)Web開發環境
- TypeScript+Webpack+React元件庫開發採坑實記TypeScriptWebReact元件
- 配置開發環境、生成環境、測試環境開發環境
- webpack4-06-開發、生產環境、動態CDN配置Web
- 搭建自己的React+Typescript環境(一)ReactTypeScript
- 搭建自己的React+Typescript環境(二)ReactTypeScript
- js開發環境配置JS開發環境
- Java開發環境配置Java開發環境
- weex開發環境配置開發環境
- Arduino開發環境配置UI開發環境
- Nowa極簡教程:立即上手webpack&react開發生態環境WebReact
- 重構之路:webpack區分生產環境和開發環境Web開發環境
- React Native 開發環境搭建React Native開發環境
- React Native開發環境搭建React Native開發環境
- webpack+react環境搭建與hello worldWebReact