版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第使用webpack打包ts代碼的實現(xiàn)目錄使用webpack打包生成package.json安裝cnpm安裝webpack相關(guān)編寫webpack配置文件創(chuàng)建tsconfig.json修改package.json使用webpack打包安裝插件html-webpack-pluginwebpack-dev-serverclear-webpack-pluginbabel模塊問題
使用webpack打包
生成package.json
本質(zhì)上,webpack是一個用于現(xiàn)代JavaScript應(yīng)用程序的靜態(tài)模塊打包工具。在我們的項目中要使用webpack首先應(yīng)該初始化,生成的默認(rèn)的package.json,執(zhí)行npminit-y后會在項目根目錄下生成package.json(其中-y是直接略過所有問答,直接都yes)
安裝cnpm
接下來需要安裝webpack所需依賴,我們可以使用npm或cnpm安裝。這里說點題外話。npm作為包管理器,由于服務(wù)器不在國內(nèi)所以有的時候速度會慢一點,所以我們來安裝淘寶團隊的cnpm,這個就是npm在國內(nèi)的鏡像,執(zhí)行以下命令來安裝cnpm
npminstallcnpm-g--registry=
使用cnpm-v來檢查是否安裝成功
安裝webpack相關(guān)
cnpmi-Dwebpackwebpack-clitypescriptts-loader
i是install的簡寫
-D表示安裝到開發(fā)環(huán)境,也就是安裝并將依賴信息寫在package.json中的devDependencies中,等同于--save-dev
webpack安裝打包工具的核心代碼
webpack-cliwebpack命令行工具
typescriptts的核心包
ts-loader必須安裝這個才能讓ts在webpack中使用
執(zhí)行命令后,查看package.json,多了devDependencies節(jié)點,說明安裝成功啦
編寫webpack配置文件
新建一個webpack.config.js文件到根目錄
//引入一個包
constpath=require('path')
//webpack中的所有配置都應(yīng)該寫在module.exports中
module.exports={
//指定入口文件
entry:"./src/index.ts",
//指定打包文件所在目錄
output:{
//指定打包文件的目錄
path:path.resolve(__dirname,'dist'),
//打包后文件的名字
filename:"bundle.js"
//指定webpack打包時使用的模塊
module:{
//指定要加載的規(guī)則
rules:[
//test指定規(guī)則生效的文件,以下匹配以ts結(jié)尾的文件
test:/\.ts$/,
//要使用的loader,用ts-loader處理以ts結(jié)尾的文件
use:'ts-loader',
//要排除的文件
exclude:/node_modules/
創(chuàng)建tsconfig.json
上節(jié)我們已經(jīng)講了,先寫這些:
{
"compilerOptions":{
"module":"ES2015",
"target":"ES2015",
"strict":true
修改package.json
"build":"webpack"
增加位置如下:
使用webpack打包
命令:npmrunbuild
在webpack.config.js中我們指定了入口文件為index.ts,我們在里邊隨便編寫一些內(nèi)容
index.ts
functionsum(a:number,b:number):number{
returna+b;
console.log(sum(11,22));
在webpack.config.js中我們指定了打包文件的目錄為dist,打包后的文件名是bundle.js,所以執(zhí)行命令npmrunbuild后就使用webpack進行了打包,結(jié)果如下:
到此為止,我們就實現(xiàn)了最簡單的使用webpack打包的功能
安裝插件
html-webpack-plugin
①安裝插件
執(zhí)行cnpmi-Dhtml-webpack-plugin
html-webpack-plugin幫助我們自動生成html文件
②引入插件
webpack.config.js中引入插件
//引入一個包
//引入插件
constHTMLWebpackPlugin=require("html-webpack-plugin")
//webpack中的所有配置都應(yīng)該寫在module.exports中
module.exports={
//配置webpack插件
plugins:[
newHTMLWebpackPlugin(),
③打包
先執(zhí)行npmrunbuild
這樣目錄下就生成了html文件
我們可以自定義標(biāo)題或其他一些內(nèi)容
//配置webpack插件
plugins:[
newHTMLWebpackPlugin({
title:"自定義標(biāo)題"
還可以設(shè)置一個網(wǎng)頁模板,我們可以在src下新建一個index.html做為模板
然后在webpack.config.js中將其設(shè)置為模板
plugins:[
newHTMLWebpackPlugin({
template:"./src/index.html"
再次運行npmrunbuild生成的網(wǎng)頁就是根據(jù)剛才寫好的模板生成的
webpack-dev-server
①、執(zhí)行cnpmi-Dwebpack-dev-server
②、在pages.json中scripts節(jié)點下增加start:webpackserve--open
意思是啟動webpack服務(wù)器,這樣我們剛才生成的html會用默認(rèn)瀏覽器打開
③、運行
直接點擊上邊截圖的運行三角形,或者執(zhí)行npmstart
如果報錯Themodeoptionhasnotbeenset
解決辦法:
在webpack.config.js中根節(jié)點下增加mode:development
(如果還處在上次命令,可以按ctrl+c終止命令)再次執(zhí)行npmstart即可打開默認(rèn)瀏覽器
這個網(wǎng)頁是實時更新的,我們修改index.ts,多輸出一行文字,右側(cè)瀏覽器也會自動輸出
clear-webpack-plugin
這個插件的作用是每次編譯會先清空編譯文件夾下的文件,再生成,這樣就保證了都是最新文件
①、安裝
cnpmi-Dclean-webpack-plugin
②、引入、配置
//引入clean插件
const{CleanWebpackPlugin}=require('clean-webpack-plugin')
//配置webpack插件
plugins:[
newCleanWebpackPlugin(),
babel
babel用來解決兼容性問題
①、安裝
cnpmi-D@babel/core@babel/preset-envbabel-loadercore-js
②、配置
修改webpack.config.js
//webpack中的所有配置都應(yīng)該寫在module.exports中
module.exports={
//指定入口文件
entry:"./src/index.ts",
//指定打包文件所在目錄
output:{
//告訴webpack不使用箭頭函數(shù)
environment:{
arrowFunction:false
//指定webpack打包時使用的模塊
module:{
//指定要加載的規(guī)則
rules:[
//test指定規(guī)則生效的文件,以下匹配以ts結(jié)尾的文件
test:/\.ts$/,
//要使用的loader,用ts-loader處理以ts結(jié)尾的文件
use:[
//配置babel
//指定加載器
loader:'babel-loader',
//設(shè)置babel
options:{
//設(shè)置預(yù)定義的環(huán)境
presets:[
//指定環(huán)境插件
'@babel/preset-env',
//配置信息
//要兼容的目標(biāo)瀏覽器
targets:{
"chrome":88
//指定corejs版本
"corejs":"3",
//使用corejs的方式usage表示按需加載
"useBuiltIns":"usage",
'ts-loader'
//要排除的文件
exclude:/node_modules/
加載器的順序是從后往前執(zhí)行,所以先用ts-loader將ts轉(zhuǎn)為js,然后使用babel-loader將新版本的js轉(zhuǎn)換為舊版本的js
模塊問題
新建m1.ts暴露一個hi
index.ts中引入m1并打印
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理站藥品管理法律法規(guī)解讀
- 腰部保養(yǎng)培訓(xùn)課件
- 2026年長春汽車職業(yè)技術(shù)大學(xué)單招綜合素質(zhì)考試題庫及答案1套
- 2026年長白山職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案1套
- 加油站臨時用電安全監(jiān)管指南
- 農(nóng)機事故應(yīng)急救援演練方案
- 新能源汽車電池材料技術(shù)突破調(diào)研
- 2026年二手奢侈品鑒定報告國際互認(rèn)調(diào)研
- 胸部保養(yǎng)課件知識
- 2026年注冊會計師實務(wù)操作題庫及答案詳解
- 衛(wèi)生管理研究論文
- 2025-2026學(xué)年人教版(新教材)小學(xué)數(shù)學(xué)二年級下冊(全冊)教學(xué)設(shè)計(附教材目錄P161)
- 委托市場調(diào)研合同范本
- 畜牧安全培訓(xùn)資料課件
- 2025年度黨支部書記述職報告
- 2026四川省引大濟岷水資源開發(fā)限公司公開招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2026年安徽糧食工程職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試備考試題及答案詳解
- 內(nèi)科學(xué)總論小兒遺傳代謝病課件
- 雨課堂學(xué)堂在線學(xué)堂云《中國電影經(jīng)典影片鑒賞(北京師范大學(xué))》單元測試考核答案
- 核電站防地震應(yīng)急方案
- 2025江西江新造船有限公司招聘70人模擬筆試試題及答案解析
評論
0/150
提交評論