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 インデックスの失敗を引き起こす一般的な書き込み方法の概要

推薦する

JavaScript でよく使われる 5 つのオブジェクト

目次1. JavaScript オブジェクト1).配列オブジェクト2).ブールオブジェクト3).日付...

Linux ファイル操作でよく使われるコマンドのまとめ

0. 新しい操作: mkdir abc #新しいフォルダを作成 touch abc.sh #新しいフ...

JavaScript でクールなマウス テーリング効果を実装

これを見た後、あなたにも手ができて、さまざまな美しい小さなしっぽを作れるようになることを保証します!...

制限を使用すると、MySQL のページングがどんどん遅くなるのはなぜですか?

目次1. テスト実験2. 制限ページング問題に対するパフォーマンス最適化手法2.1 テーブルをカバー...

MySQL 8.0.12 のインストールと設定のチュートリアル

この記事はMySQL 8.0.12のインストールと設定に関する詳細なチュートリアルを記録しています。...

Vueモバイル端末は左スライド編集と削除の全プロセスを実現します

序文プロジェクトのニーズに応じて、Vue-touch を使用して、vue モバイル端末の左スワイプ編...

echarts と vue.js を統合する際に発生するいくつかの問題の概要

序文現在、私は Beetlex のデータ分析プラットフォームに取り組んでいます。この製品の開発では、...

JavaScriptのループの違いについての詳細な説明

目次序文列挙可能なプロパティ反復可能なオブジェクトforEachメソッドとmapメソッドチェーン呼び...

js キャンバスはランダムなパーティクル効果を実現します

この記事の例では、参考のためにjsキャンバスランダムパーティクルエフェクトの具体的なコードを共有して...

WeChat 8.0の爆発的な特殊効果を実現するために300行以上のCSSコードが必要

WeChat 8.0 アップデートの主な特徴は、アニメーション絵文字のサポートです。送信するメッセー...

React プロジェクトにおける axios カプセル化と API インターフェース管理の詳細な説明

目次序文インストール導入環境の切り替え傍受を要求するレスポンスインターセプションAPIの統合管理要約...

MacOS での MySQL 8.0.18 のインストールと設定方法のグラフィック チュートリアル

この記事では、MacOSでのMySQL 8.0.18のインストールと成功したコマンドライン操作を記録...

フレックスボックスレイアウトの最終行の左揃えの実装アイデア

フレックスレイアウトを使用すると、9つの正方形のグリッドであれば、図に示すように均等に分割できます。...

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

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

Web フロントエンドのパフォーマンス最適化の詳細説明: リソースのマージと圧縮

2つの目的のためのリソースの結合と圧縮httpリクエストの数を減らす要求されたリソースのサイズを縮小...