1.初始化项目
复制代码
npm i -y
2.下载依赖
复制代码
npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader clean-webpack-plugin
2.1依赖包介绍
复制代码
webpack //构建工具webpack
webpack-cli //webpack的命令行工具
webpack-dev-server //webpack的开发服务器
typescript //ts编译器
ts-loader //ts加载器,用于在webpack中编译ts文件
html-webpack-plugin //webpack中html插件,用来自动创建html文件
clean-webpack-plugin //webpack中的清除插件,每次构建都会先清除目录
2.2Babel
2.2.1介绍
复制代码
开发中还经常需要结合babel来对代码进行转换以使其可以兼容到更多的浏览器
2.2.2下载依赖
复制代码
npm i -D @babel/core @babel/preset-env babel-loader core-js
2.2.3依赖包介绍
复制代码
@babel/core //babel的核心工具
@babel/preset-env //babel的预定义环境
@babel-loader //babel在webpack中的加载器
core-js //core-js用来使老版本的浏览器支持新版ES语法
3.创建webpack.config.js文件
javascript
复制代码
// 引入一个包
const path = require('path')
// 引入 html 插件
const htmlWebpackPlugin = require('html-webpack-plugin')
// 引入clean 插件
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
// webpack中的所有配置信息都应该写在module.exports中
module.exports = {
// 指定入口文件
entry: './src/index.ts',
// 指定打包文件所在目录
output: {
// 指定打包文件目录
path: path.resolve(__dirname, 'dist'),
// 打包后文件的文件名
filename: 'bundle.js',
// 配置打包环境
environment: {
arrowFunction: false // webpack打包不使用箭头函数
}
},
// 指定webpack打包时使用模块
module: {
// 指定加载规则
rules: [
{
// test指定的规则生效的文件
test: /\.ts$/,
// 使用的loader
use: [
{
//指定加载器
loader: 'babel-loader',
// 设置
options: {
presets: [
// 预定义环境
[
// 环境插件
'@babel/preset-env',
// 配置信息
{
// 兼容浏览器版本
targets: {
chrome: '58',
ie: '11'
},
// corejs版本
corejs: '3',
// 使用corejs的方式
useBuiltIns: 'usage' //按需加载
}
]
]
}
},
'ts-loader'
],
exclude: /node_modules/
}
]
},
// 配置webpack插件
plugins: [
new htmlWebpackPlugin({
// title: 'TS测试', //自定义title名
template: './src/index.html' //根据模版生成
}),
new CleanWebpackPlugin()
],
resolve: {
extensions: ['.ts', '.js']
}
}
3.1模版页例子(./src/index.html)
html
复制代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>模板页</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<body>
<div id="c1">123</div>
</body>
</html>
4.创建tsconfig.json配置文件``
html
复制代码
{
"compilerOptions": {
"module": "ES2015",
"target": "ES2015",
"strict": true
}
}
5.修改package.json添加如下配置
html
复制代码
{
...略...
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack",
"start": "webpack serve --open chrome.exe" //启动webpack服务
},
...略...
}
6.使用
html
复制代码
在src下创建ts文件,并在并命令行执行npm run build对代码进行编译,或者执行npm start来启动开发服务器