从零开始搭建|从零开始搭建 TS + webpack-dev-server 的开发环境
目的:准备 一、初始项目目录结构(非常简单)
- 可使用 TypeScript 来开发项目
- 结合 webpack-dev-server 的热重载,提升开发效率
- 了解相关依赖和配置的作用
|_ src
||_ index.ts
|_ public
|_ index.html(只需在body标签中添加)
二、升级为 TS 环境 步骤:
- 转为npm项目:
npm init -y
(省去不断按 Y 的功夫) - 安装依赖:
npm i typescript -D
- 添加tsconfig.json:
tsc --init
|_ src
||_ index.ts
|_ public
||_ index.html
|_ tsconfig.json
|_ package.json
验证
- 修改 tsconfig.json,将编译后的文件输出到
public
目录:
{ ... "compilerOptions": { "outDir": "./public" } ... }
- 编辑
./src/index.ts
const msg: string = 'ts' function getMsg() { return 'Hello, ' + msg } // 更新页面的内容 document.body.textContent = getMsg()
- 在终端执行:
tsc
,然后在浏览器中打开public/index.html
即可看到结果
- 安装基础依赖:
npm i webpack webpack-cli webpack-dev-server -D
- webpack:核心依赖,功能不赘
- webpack-cli:用于在命令行中运行 webpack
- webpack-dev-server:为webpack打包生成的资源文件提供web服务,支持
热重载
- 添加必要目录/文件:
- 在根目录下添加配置文件
webpack.config.json
- 在根目录下添加发布目录
dist
- 在根目录下添加配置文件
- 安装其他依赖:
ts-loader html-webpack-plugin cross-env -D
- ts-loader:webpack 的 ts 加载器,编译 ts 文件
- html-webpack-plugin:webpack 的 html 插件,可使用模板 html 生成最终 html
- cross-env:方便切换开发和生产环境
|_ src
||_ index.ts
|_ dist
|_ public
||_ index.html
|_ tsconfig.json
|_ package.json
|_ webpack.config.json
步骤二:
- 编辑
webpack.config.json
:
const HtmlWebpackPlugin = require('html-webpack-plugin')module.exports = { // resolve:设置模块如何被解析 resolve: { // extensions:引入模块时不带扩展 // 原来:import File from '../path/to/file.js' // 现在:import File from '../path/to/file' extensions: ['.js', '.ts', '.tsx'], }, // module:决定了如何处理不同类型的模块 module: { // rules:创建模块时,匹配请求的规则数组 rules: [ { // 匹配所有 ts 文件 test: /\.tsx?$/i, // 使用 ts-loader 来处理 use: 'ts-loader', // 排除这个目录下的 exclude: /node_modules/, }, ], }, // plugins:用于以各种方式自定义构建过程 plugins: [ // 使用目标模板来生成最终 html new HtmlWebpackPlugin({ template: './public/index.html', }), ], }
- 编辑
public/index.html
,将script
标签去掉,因为webpack
构建时会自动插入相关标签 - 【从零开始搭建|从零开始搭建 TS + webpack-dev-server 的开发环境】在
package.json
中添加启动服务的脚本:
{ ... "script": { "dev": "cross-env NODE_ENV=development webpack-dev-server --config webpack.config.js" } ... }
- 在终端中执行:
num run dev
,启动服务 - 浏览器打开:
127.0.0.1:8080
,即可看到页面 - 修改
./src/index.ts
中msg
的值,然后保存,可看到浏览器的页面会自动刷新
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 一个人的碎碎念
- 我从来不做坏事
- 上班后阅读开始变成一件奢侈的事
- 从蓦然回首到花开在眼前,都是为了更好的明天。
- 日志打卡
- 西湖游
- 改变自己,先从自我反思开始
- leetcode|leetcode 92. 反转链表 II
- 从我的第一张健身卡谈传统健身房