国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

教你使用webpack打包編譯TypeScript代碼

發(fā)布時(shí)間:2021-08-17 12:16 來(lái)源: 閱讀:0 作者:韓子昕 欄目: JavaScript 歡迎投稿:712375056

TypeScript打包

 webpack整合

通常情況下,實(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:構建工具webpack
  • webpack-cli:webpack的命令行工具
  • webpack-dev-server:webpack的開(kāi)發(fā)服務(wù)器
  • typescript:ts編譯器
  • ts-loader:ts加載器,用于在webpack中編譯ts文件
  • html-webpack-plugin:webpack中html插件,用來(lái)自動(dòng)創(chuàng )建html文件
  • clean-webpack-plugin:webpack中的清除插件,每次構建都會(huì )先清除目錄

配置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è)包,分別是:

  • @babel/core:babel的核心工具
  • @babel/preset-env:babel的預定義環(huán)境
  • @babel-loader:babel在webpack中的加載器
  • core-js:core-js用來(lái)使老版本的瀏覽器支持新版ES語(yǔ)法

修改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í)歡迎投稿傳遞力量。

w
美丽的熟妇中文字幕| 最好看的中文字幕国语电视剧| 国产成年女人特黄特色毛片免| 少妇粉嫩小泬喷水视频WWW| 精品综合久久久久久888蜜芽| 人与牲口性恔配视频免费L|