- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > JavaScript >
- 教你使用webpack打包編譯TypeScript代碼
通常情況下,實(shí)際開(kāi)發(fā)中我們都需要使用構建工具對代碼進(jìn)行打包;
TS同樣也可以結合構建工具一起使用,下邊以webpack為例介紹一下如何結合構建工具使用TS;
步驟如下:
初始化項目
進(jìn)入項目根目錄,執行命令 npm init -y
,創(chuàng )建package.json文件
下載構建工具
命令如下:
npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader clean-webpack-plugin
共安裝了7個(gè)包:
配置webpack
根目錄下創(chuàng )建webpack的配置文件webpack.config.js
:
const path = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const { CleanWebpackPlugin } = require("clean-webpack-plugin"); module.exports = { optimization:{ minimize: false // 關(guān)閉代碼壓縮,可選 }, entry: "./src/index.ts", devtool: "inline-source-map", devServer: { contentBase: './dist' }, output: { path: path.resolve(__dirname, "dist"), filename: "bundle.js", environment: { arrowFunction: false // 關(guān)閉webpack的箭頭函數,可選 } }, resolve: { extensions: [".ts", ".js"] }, module: { rules: [ { test: /\.ts$/, use: { loader: "ts-loader" }, exclude: /node_modules/ } ] }, plugins: [ new CleanWebpackPlugin(), new HtmlWebpackPlugin({ title:'TS測試' }), ] }
配置TS編譯選項
根目錄下創(chuàng )建tsconfig.json,配置可以根據自己需要
{ "compilerOptions": { "target": "ES2015", "module": "ES2015", "strict": true } }
修改package.json配置
修改package.json添加如下配置
{ ... "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack", "start": "webpack serve --open chrome.exe" }, ... }
項目使用
在src下創(chuàng )建ts文件,并在并命令行執行npm run build
對代碼進(jìn)行編譯;
或者執行npm start
來(lái)啟動(dòng)開(kāi)發(fā)服務(wù)器;
Babel
除了webpack,開(kāi)發(fā)中還經(jīng)常需要結合babel來(lái)對代碼進(jìn)行轉換;
以使其可以兼容到更多的瀏覽器,在上述步驟的基礎上,通過(guò)以下步驟再將babel引入到項目中;
雖然TS在編譯時(shí)也支持代碼轉換,但是只支持簡(jiǎn)單的代碼轉換;
對于例如:Promise等ES6特性,TS無(wú)法直接轉換,這時(shí)還要用到babel來(lái)做轉換;
安裝依賴(lài)包:
npm i -D @babel/core @babel/preset-env babel-loader core-js
共安裝了4個(gè)包,分別是:
修改webpack.config.js配置文件
module: { rules: [ { test: /\.ts$/, use: [ { loader: "babel-loader", options:{ presets: [ [ "@babel/preset-env", { "targets":{ "chrome": "58", "ie": "11" }, "corejs":"3", "useBuiltIns": "usage" } ] ] } }, { loader: "ts-loader", } ], exclude: /node_modules/ } ] }
如此一來(lái),使用ts編譯后的文件將會(huì )再次被babel處理;
使得代碼可以在大部分瀏覽器中直接使用;
同時(shí)可以在配置選項的targets中指定要兼容的瀏覽器版本;
到此這篇關(guān)于使用webpack打包編譯TypeScript代碼的文章就介紹到這了,更多相關(guān)webpack打包編譯TypeScript內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站