在开发过程中必然使用webpack 来打包编译,下面来记录下配置过程
简单的配置步骤
- npm init
- yarn add -D webpack webpack-cli typescript ts-loader
- 创建webpack.config.js
- 创建tsconfig.json 编译的时候会来这个文件找对应的配置 有了上面的几个插件,就可以简单的将ts 代码转为js 代码
const path = require('path')
// webpack 中的所有配置信息都应该写到下面
module.exports = {
// 指定入口文件
entry: './src/index.ts',
output: {
// 指定打包文件 输出的位置
path: path.resolve(__dirname, 'dist'),
// 打包后的文件
filename: 'bundle.js'
},
module: {
// 指定要加载的规则
rules: [
{
// test 指定的是规则生效的文件
test: /\.ts$/,
// 要使用的loader
use: [
'ts-loader',
],
exclude: /node_modules/
}
]
}
}
{
"compilerOptions": {
"target": "ES2015",
"module": "ES2015",
"strict": true
}
}
在tsconfig.json 中target 只能转换一些简单的语法,对比较复杂的东西不能转换。这里需要用到babel
- yarn add -D @babel/core @babel/preset-env babel-loader core-js @babel/core 是转换的核心 @babel/preset-env 预置了不同的环境 babel-loader 结合工具 core-js兼容老版本代码,可以按需加载
const path = require('path')
// webpack 中的所有配置信息都应该写到下面
module.exports = {
// 指定入口文件
entry: './src/index.ts',
output: {
// 指定打包文件 输出的位置
path: path.resolve(__dirname, 'dist'),
// 打包后的文件
filename: 'bundle.js',
environment: {
arrowFunction: false
}
},
module: {
// 指定要加载的规则
rules: [
{
// test 指定的是规则生效的文件
test: /\.ts$/,
// 要使用的loader
use: [
// 配置babel
{
// 指定加载器
loader: 'babel-loader',
// 设置预定义的环境
options: {
// 指定环境的插件
presets: [
[
'@babel/preset-env',
// 配置信息
{
// 要兼容的浏览器
targets: {
'chrome': '88',
// "ie": '11'
},
// 指定下载的 corejs 版本
"corejs": '3',
// 使用corejs 的方式 usage 表示按需加载
"useBuiltIns": "usage"
}
]
]
}
},
'ts-loader',
],
exclude: /node_modules/
}
]
}
}