webpack搭建腳手架打包TypeScript代碼
創(chuàng)建文件夾
目錄結(jié)構(gòu): dabaots
初始化 npm init -y生成package.json文件
目錄結(jié)構(gòu):
dabaots
dabaots / package.json
然后在開發(fā)環(huán)境中安裝以下幾個(gè)工具
npm i -D
webpack··························(打包代碼的核心工具
webpack-cli·····················(webpack的命令行工具)
typescript ·······················(寫ts所需的核心包)
ts-loader ·························(通過ts-loader可以對(duì)webpack和ts進(jìn)行整合)
html-webpack-plugin … (是自動(dòng)生成html的一個(gè)webpack插件)
webpack-dev-server … (無需刷新更新頁面)
clean-webpack-plugin … ( 每次打包上線之前都會(huì)自動(dòng)清空dist內(nèi)的文件如何重新生成最新的文件)
"@babel/core" “@babel/preset-env” babel-loader core-js(安裝babel轉(zhuǎn)換,你是什么環(huán)境他就會(huì)轉(zhuǎn)成什么代碼)
可能會(huì)遇到的小問題:這里可能會(huì)出現(xiàn)的問題就是你下載的依賴包webpack-dev-server版本如果和谷歌的不適配,建議將插件版本改低一點(diǎn)或者谷歌瀏覽器升級(jí)成最新版本否則會(huì)出現(xiàn)錯(cuò)誤Cannot GET /chrome.exe
接下來創(chuàng)建webpack.config.js進(jìn)行配置
目錄結(jié)構(gòu):
dabaots
dabaots / package.json
dabaots / webpack.config.js
// 引入一個(gè)包
const path = require("path")
//引入自動(dòng)生成html的包
const HtmlWebpackPlugin = require("html-webpack-plugin")
//引入更新dist文件的插件
const {CleanWebpackPlugin} = require("clean-webpack-plugin")
// webpack中的所有的配置信息都應(yīng)該寫入moudle.exports中
module.exports={
// 指定入口文件
entry:"./src/index.ts",
// 指定打包文件所在目錄
output:{
// 指定打包文件的目錄
path:path.resolve(__dirname,"dist"),
// 指定打包后文件的文件
filename:"bundle.js",
//編譯的時(shí)候不使用箭頭函數(shù)
environment: {
arrowFunction: false
}
},
//webpack打包時(shí)要使用到module這個(gè)模塊
module:{
// 指定要加載的規(guī)則
rules:[{
// test指定的是規(guī)則生效的文件
test:/\.ts$/,
// use是要使用的loader
//配置babel
use:[
{//指定加載器
loader:"babel-loader",
options:{
//設(shè)置預(yù)定義環(huán)境
presets:[
[
//指定環(huán)境的插件
"@babel/preset-env",
//配置信息
{
//要兼容的瀏覽器
targets:{
"chrome":"88"
},
// 指定corejs的版本
"corejs":"3",
//表示按需加載
"useBuiltIns":"usage"
}
]
]
}
},
'ts-loader'
],
//設(shè)置不被打包上傳的文件
exclude:["/node_modules/"]
}]
},
// 配置webpack插件
plugins:[
new HtmlWebpackPlugin({
// 自定義html模板地址
template:"./src/index.html"
}),
//每次打包上線之前都會(huì)自動(dòng)清空dist內(nèi)的文件如何重新生成最新的文件
new CleanWebpackPlugin()
],
resolve:{
//解決在ts文件內(nèi)部單獨(dú)引入其他ts包時(shí)候報(bào)錯(cuò)的問題
extensions:['.ts','.js']
}
}
最后在package.json中寫入打包及運(yùn)行等腳本

在終端npm run build 打包運(yùn)行即可
打包成功后會(huì)自動(dòng)生成一個(gè)dist文件
npm run start 自動(dòng)打開谷歌瀏覽器且內(nèi)容為熱更新的
到此這篇關(guān)于webpack搭建腳手架打包TypeScript代碼的文章就介紹到這了,更多相關(guān)webpack打包TypeScript代碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將json當(dāng)數(shù)據(jù)庫(kù)一樣操作的javascript lib
使用javascript操作JSON的類庫(kù)TAFFY DB,具體介紹了:查詢數(shù)據(jù)、添加數(shù)據(jù)、刪除數(shù)據(jù)、修改數(shù)據(jù)。2013-10-10
JS實(shí)現(xiàn)頁面數(shù)據(jù)懶加載
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)頁面數(shù)據(jù)懶加載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
深入淺析JavaScript面向?qū)ο蠛驮秃瘮?shù)
這篇文章主要介紹了深入淺析JavaScript面向?qū)ο蠛驮秃瘮?shù)的相關(guān)資料,需要的朋友可以參考下2016-02-02
js判斷鼠標(biāo)同時(shí)離開兩個(gè)div的思路及代碼
js判斷鼠標(biāo)同時(shí)離開兩個(gè)div想了好長(zhǎng)時(shí)間終于出爐了,下面與大家分享下具體的實(shí)現(xiàn)代碼,感興趣的朋友可以參考下啊2013-05-05
Bootstrap教程JS插件彈出框?qū)W習(xí)筆記分享
這篇文章主要為大家分享了Bootstrap教程JS插件彈出框?qū)W習(xí)筆記,為大家詳細(xì)介紹Bootstrap彈出框的使用方法,感興趣的小伙伴們可以參考一下2016-05-05
公眾號(hào)SVG動(dòng)畫交互實(shí)戰(zhàn)代碼
這篇文章主要介紹了公眾號(hào)SVG動(dòng)畫交互實(shí)戰(zhàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
JavaScrip數(shù)組去重操作實(shí)例小結(jié)
這篇文章主要介紹了JavaScrip數(shù)組去重操作,結(jié)合實(shí)例形式總結(jié)分析了javascript針對(duì)數(shù)組的遍歷、判斷、去重等相關(guān)操作技巧,需要的朋友可以參考下2019-06-06
javascript面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)特性經(jīng)典教程(值得收藏)
這篇文章主要介紹了javascript面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)特性,結(jié)合實(shí)例形式詳細(xì)講述了javascript對(duì)象的創(chuàng)建,訪問,刪除,對(duì)象類型,擴(kuò)展等,需要的朋友可以參考下2016-05-05

