WebpackはTypeScriptコードをパッケージ化するためのスキャフォールディングを構築します

WebpackはTypeScriptコードをパッケージ化するためのスキャフォールディングを構築します

フォルダを作成する

ディレクトリ構造: dabaots

npm init -yを初期化して package.json ファイルを生成します。

ディレクトリ構造:
ダバオツ
dabaots/package.json

次に開発環境に以下のツールをインストールします

npm i -D

webpack·························(コードをパッケージ化するためのコアツール
webpack-cli······················(webpack 用コマンドラインツール)
typescript ·························(ts を書くために必要なコアパッケージ)
ts-loader ···························(webpack と ts は ts-loader を介して統合できます)
html-webpack-plugin … (HTML を自動生成する webpack プラグイン)
webpack-dev-server … (更新ページを更新する必要はありません)
clean-webpack-plugin … (各パッケージが起動される前に、dist 内の最新のファイルを自動的にクリアして再生成する方法)
"@babel/core" "@babel/preset-env" babel-loader core-js (babel変換をインストールすると、環境に応じてコードに変換されます)

発生する可能性のある小さな問題: ここで発生する可能性のある問題は、ダウンロードした依存パッケージ webpack-dev-server のバージョンが Google のバージョンと互換性がない場合は、プラグインのバージョンを低いレベルに変更するか、Google Chrome を最新バージョンにアップグレードすることをお勧めします。そうしないと、「Cannot GET /chrome.exe」というエラーが発生します。

次に、設定用のwebpack.config.jsを作成します。

ディレクトリ構造:
ダバオツ
dabaots/package.json
dabaots/webpack.config.js

// パッケージをインポートする const path = require("path")

//HTML を自動生成するためのパッケージを導入します const HtmlWebpackPlugin = require("html-webpack-plugin")

//dist ファイルを更新するためのプラグインを導入します const {CleanWebpackPlugin} = require("clean-webpack-plugin")

// webpack のすべての設定情報は、moudle.exportsmodule.exports={ に書き込む必要があります。
    //エントリファイルエントリを指定します: "./src/index.ts",
    //パッケージ化されたファイルが配置されているディレクトリを指定します。出力:{
        //パッケージ化されたファイルのディレクトリパスを指定します:path.resolve(__dirname,"dist"),
        //パッケージ化されたファイルのファイル名を指定します: "bundle.js",
        //コンパイル時に矢印関数を使用しない環境: {
            矢印関数: false
        }
    },
    
    //Webpack はパッケージ化時にモジュールを使用する必要があります。module:{
        //ロードするルールを指定します:[{
            // test はルールが適用されるファイル test:/\.ts$/ を指定します。
            // use は使用するローダーです
            //Babelを設定する
            使用:[
                //ローダーを指定する loader: "babel-loader",
                    オプション:{
                        //定義済みの環境プリセットを設定します:[
                            [
                                //環境プラグイン「@babel/preset-env」を指定します。
                                //設定情報{
                                    //互換性のあるブラウザターゲット:{
                                        "クローム":"88"
                                    },
                                    //corejsのバージョンを指定します "corejs":"3",
                                    // オンデマンドでロードすることを意味します "useBuiltIns": "usage"
                                }
                            ]
                        ]
                    }
                },
                'ts-loader'
            ]、
            //パッケージ化およびアップロードされないファイルを設定します exclude: ["/node_modules/"]
        }]
    },
    
    // webpackプラグインを設定する:[
        新しいHtmlWebpackプラグイン({
            // カスタム HTML テンプレート アドレス テンプレート: "./src/index.html"
        })、
        // パッケージ化と起動の前に、dist 内のファイルは自動的にクリアされます。最新のファイルを再生成する方法 new CleanWebpackPlugin()
    ]、
    
    解決する:{
        //tsファイル拡張子:['.ts','.js']に他のtsパッケージを個別に導入する場合のエラーの問題を解決します
    }
}

最後に、package.jsonにパッケージ化と実行スクリプトを記述します。

ターミナルでnpm run build packageを実行し、

パッケージ化が成功すると、distファイルが自動的に生成されます。

npm run start自動的にGoogle Chromeを開き、コンテンツは最新の状態に更新されます。

これで、webpack スキャフォールディングと TypeScript コード パッケージングに関するこの記事は終了です。より関連性の高い webpack TypeScript コード パッケージング コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • TypeScript 列挙の基本と例
  • TypeScript の条件型に関する詳細な読書と実践記録
  • Typescript+React でモバイルと PC でシンプルなドラッグ アンド ドロップ効果を実現
  • ReactプロジェクトでのTypeScriptの実装
  • Vue3とTypeScriptを組み合わせたプロジェクト開発の実践記録
  • Vue3 + TypeScript 開発の概要
  • Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します
  • VueでTypeScriptを使用する方法
  • TypeScriptのインデックスシグネチャの理解に関する簡単な説明

<<:  例によるMySql CURRENT_TIMESTAMP関数の分析

>>:  MySQL インデックスの失敗を引き起こす一般的な書き込み方法の概要

推薦する

HTML テーブルのオーバーフローの解決方法

テーブルが広い場合は、あふれてしまう可能性があります。たとえば、左と右の 2 つの div がありま...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

linuxdeployqt を使用して Ubuntu で Qt プログラムをパッケージ化する問題を解決する

いくつかの Qt インターフェース プログラムを作成しましたが、Qt 環境がインストールされていない...

マウスを置いたときに半透明効果のテキスト説明を実現するための純粋な CSS (初心者は必読)

効果は以下のとおりです。 例1 例2:例1[結婚式の計画]を例にとるHTML: <div cl...

Zabbix による SQL Server の監視プロセスの詳細な説明

Zabbix による SQL Server の監視を見てみましょう。まずfreetdsをダウンロード...

Dockerコンテナでユーザーを分離する方法

前回の記事「Docker コンテナの UID と GID を理解する」では、Docker コンテナ内...

React+TS を使用したシンプルな Jira プロジェクトを実装するためのベスト プラクティス

トレーニングのための一連のプロジェクト反応+ts内容は少ないですが、フックのカプセル化、ts ジェネ...

IE をフリーズさせる HTML コード

任意のテキスト エディターを開き、次のコードをコピーして、たとえば SomeFilename.htm...

MySQLのFreeListメカニズムの詳細な説明

1. はじめにMySQL が起動すると、BufferPool が初期化されます。クエリ操作を実行する...

Docker コンテナにデータベースをデプロイする場合の欠点は何ですか?

序文Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソ...

Dockerコンテナにvimコマンドがない問題を解決する方法

問題を見つける今日、Docker コンテナ内のファイルを変更しようとしたところ、コンテナ内に vim...

Mysql インデックスと Redis ジャンプテーブルについての簡単な説明

まとめインタビュー中、MySQL インデックスの問題について議論しているときに、B+ ツリー、B ツ...

MySQL における INSERT INTO SET の利点

MySQL データベースにデータを挿入します。以前はよく使われていた INSERT INTO テーブ...

Zabbixで指定時間内の変化値を設定する方法の詳細な説明

背景説明: 既存の負荷分散装置には、付加価値状態にある指標があります (増加するだけで減少しないため...

Vue.jsはElement-uiを使用してナビゲーションメニューを実装します

この記事では、Element-uiを使用してvue.jsでナビゲーションメニューを実装するための具体...