TypeScript安裝以及基礎的編譯與tsconfig.json配置 以及 webpack.config.js文件配置


 

TypeScript安裝以及基礎的編譯與tsconfig.json配置

             以及webpack.config.js文件配置

 

一、typeScript安裝以及基礎編譯

 npm i -g typescript

  安裝完,進入ts文件的項目目錄下,在命令行執行    tsc hello.ts(hello.ts是ts文件,執行這個命令可以把ts文件編譯為hello.js文件)

       這個命令,ts文件里的代碼每改變一次,需要執行一次。如果要實時編譯  需要             

                 

  上面這種方法,只是針對單個文件。如果我們需要對批量的ts文件,進行實時編譯,那么我們就需要在根目錄下創建一個tsconfig.js文件

           

   tsconfig里面即使僅有個{},我們在項目根目錄執行tsc -w 也會自動編譯項目下所有的ts文件;  

  下面是tsconfig相關的一些配置

二、ts的tsconfig.json配置文件


// npm init -y  對項目進行初始化,在項目下生成package.json
// npm i -D webpack webpack-cli typescript ts-loader  可以生成node_modules
// npm i -D html-webpack-plugin

// tsc -w

// npm i -D webpack-dev-server  內置服務器,自動刷新
// npm i -D clean-webpack-plugin
// npm i -D @babel/core @babel/preset-env babel-loader core-js   適配不同的瀏覽器
// npm i -D postcss postcss-loader postcss-preset-env

{
    // include代表需要編譯哪些文件;路徑:兩個**,代表當前文件下的所有目錄,一個*代表當前文件夾下的所有文件
    "include": [
        "./src/**/*"
    ],

    // 不需要被編譯的文件
    "exclude": [
        "./src/hello/**/*"
    ],

    // 定義被繼承得配置文件
    // "extends":"",

    // 需要編譯的文件,一個一個放這里;
    // "files": [

    // ],

    // 編譯器的選項
    "compilerOptions": {

        // 用來指定ts被編譯的ES的版本  "target":"esnext"這是最新版本
        "target": "ES6",

        // 指定要使用的模塊化規范
        // "module": "es2015",
        // "module":"CommonJS"
        "module": "system",

        // 用來指定項目中用到的庫
        "lib": [
            "DOM",
            "ES6"
        ],

        // 用來指定編譯后文件所在的目錄,編譯后的文件放在哪
        "outDir": "./dist",

        // 所有全局作用域中的代碼合並為一個文件,如果要使用模塊化,必須這么設置模塊化"module":"system"
        "outFile": "./dist/app.js",

        // 是否對js文件進行編譯,默認是false
        "allowJs": true,

        // 檢查js代碼是否符合邏輯規范,默認是false
        "checkJs": true,

        //是否移除注釋
        "removeComments": true,

        // 不生成編譯后的文件,只是執行過程,只是檢查語法
        "noEmit": false,

        //當有錯誤的時候不生成編譯后的文件
        "noEmitOnError": true,

        //所有嚴格檢查的總開關
        "strict": false,

        // 用來設置編譯后的文件,是否采用嚴格模式
        "alwaysStrict": true,

        // 不允許出現隱式的any類型
        "noImplicitAny": true,

        // 不允許出現隱式的this
        "noImplicitThis": true,

        // 嚴格的檢查空值  例:div不存在,在獲取dom的時候
        "strictNullChecks": true,
        
    }
    
}

 

三、webpack.confis.js文件配置

  

// 引入一個包
const path = require("path");
// 引入html文件
const HTMLWebpackPlugin = require('html-webpack-plugin');
// 引入clean插件
const { CleanWebpackPlugin } = require('clean-webpack-plugin')


// webpack中的所有配置信息,都應該寫在這里
module.exports = {

    // 指定入口文件
    entry: "./src/index.ts",

    // 指定打包文件所在目錄
    output:{

        // 指定打包文件的目錄
        path:path.resolve(__dirname,'dist'),

        // 打包后文件的文件名
        filename:"bundle.js",

        // 告訴webpack不適用箭頭
        environment:{
            arrowFunction:false
        }
    },

    //指定webpack打包時要是用的模塊
    module:{
        // 指定要加載的規則
        "rules":[
            {
                // test指定的是規則生效的文件
                test:/\.ts$/,
                //要使用的loader
                use:[
                    // 配置babel
                    {
                        // 指定加載器
                        loader: "babel-loader",
                        // 設置babel
                        options: {

                            // 設置預定義的環境
                            presets:[
                                [
                                    // 指定環境的插件
                                    "@babel/preset-env",

                                    // 配置信息
                                    {

                                        // 要兼容的目標瀏覽器
                                        targets:{
                                            "chrome":"88",
                                        },

                                        // 指定corejs版本
                                        "corejs":"3", 

                                        // 使用corejs的方式  按需加載
                                        "useBuiltIns":"usage"

                                    }
                                ]
                            ]

                        }
                    },
                    'ts-loader'
                ],
                // 要排除的文件
                exclude:/node-modules/

            },
            // 設置less文件的處理
            {
                test:/\.less$/,
                use:[//從下往上執行
                    "style-loader",
                    "css-loader",
                    // 引入postcss配置
                    {
                        loader:"postcss-loader",
                        options:{
                            postcssOptions:{
                                plugins:[
                                    "postcss-preset-env",
                                    {
                                        browsers:'last 2 versions'
                                    }
                                ]
                            }
                        }
                    },
                    "less-loader"
                ]
            }
        ]
    },

    // 配置webpack插件
    plugins:[
        new CleanWebpackPlugin(),
        new HTMLWebpackPlugin({
            // title:"這是一個自定義的title"
            template:'./src/index.html'
        })
    ],

    // 用來設置那些后綴名可以設置引用模塊
    resolve:{
        extensions:['.ts','.js']
    }

}

  

四、在package.json中加入一句話

 

   我們就可以用命令npm run build 去執行我們的webpack,用webpack對我們的項目進行打包。

  (需要認真看兩個配置文件,這兩個配置文件只是匯總)

   npm run build 

  

         如有疑問請加群討論 854184700

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM