Typescript+React+Webpack整合
介绍
TypescriptTypeScript是一种由微软开发的开源、跨平台的编程语言。 他是JavaScript的超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程,遵循最新的ES5、ES6规范。
React是一个用于构建用户界面的JavaScript库,起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。React拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。
Webpack是当前前端最热门的前端资源模块化管理和打包工具
项目初始化
初始化项目结构
1 | mkdir react-ts-ui |
Typescript文件会放在src文件夹里,通过TypeScript编译器编译,然后经webpack处理,最后生成一个bundle.js文件放在dist目录下。 我们自定义的组件将会放在 src/components文件夹下。
1 | mkdir src |
项目结构
1 | react-ts-ui/ |
初始化工程
1 | // ./react-ts-ui |
Typescript
安装
Typescript
依赖
1 | yarn add -D typescript awesome-typescript-loader source-map-loader |
在根目录下创建
tsconfig.json
文件
这里可以查看tsconfig
文件详细说明
1 | { |
React
安装
React
依赖
1 | yarn add react react-dom @types/react @types/react-dom |
编写
React
组件
1 | import * as React from "react"; |
接下来在
src
文件下创建index.tsx
文件
1 | import * as React from "react"; |
在根目录下创建
index.html
文件
1 |
|
Webpack
安装
Webpack
依赖
1 | npm i -g webpack |
在根目录下创建
webpack.config.js
文件
1 | //webpack.config.js |
需要注意一点我们是从node_modules引入的文件。 React和React-DOM的npm包里包含了独立的 .js文件,你可以在页面上引入它们,这里我们为了快捷就直接引用了。 可以随意地将它们拷贝到其它目录下,或者从CDN上引用。
- awesome-typescript-loader
- 可以让Webpack使用TypeScript的标准配置文件 tsconfig.json编译TypeScript代码。npm_url
- source-map-loader
- 使用TypeScript输出的sourcemap文件来告诉webpack何时生成 自己的sourcemaps。 这就允许你在调试最终生成的文件时就好像在调试TypeScript源码一样。npm_url
如果有css文件需要打包就需要引用以下两个包
1 | //webpack.config.js |
配置本地服务器
webpack-dev-server是一个小型的node.js Express服务器,它使用webpack-dev-middleware中间件来为通过webpack打包生成的资源文件提供Web服务。
全局安装
webpack-dev-server
1 | npm i -g webpack-dev-server |
修改
webpack.config.js
配置文件
1 | //webpack.config.js |
启动服务器
1 | webpack serve |
创建站点页面
html-webpack-plugin简化了 HTML 文件的创建,以便为你的 webpack 包提供服务。这对于那些文件名中包含哈希值,并且哈希值会随着每次编译而改变的 webpack 包特别有用。你可以让该插件为你生成一个 HTML 文件,使用 lodash 模板提供模板,或者使用你自己的 loader。
安装插件包
1 | yarn add -D html-webpack-plugin |
修改
webpack.config.js
配置文件
1 | //webpack.config.js |
热加载
修改
webpack.config.js
配置文件
1 | var webpack = require('webpack'); |