webpackでvue環境を構築する際の異常なエラーを解決する

webpackでvue環境を構築する際の異常なエラーを解決する

今日、webpack を使用して手動で環境を構築したところ、おかしなエラーが発生し、長い間次のステップに進むことができませんでした。

まず、package.jsonを設定します

//npm init -y を自動設定する

すべて順調です

次にwebpackツールをインストールします

npm で webpack をインストールします。webpack-cli --save-dev
  //またはnpm i webpack webpack-cli -DでもOK

webpackテストの実行

このステップで、コマンドラインにwebpackと入力してEnterキーを押すと、エラーが大量に報告され始めました。

その場合、最も速い方法は、ファイルを削除して再インストールすることです。 再度試してみても、同じエラーが報告され、混乱します。

webpack -V を出力したところ、バージョン番号すら出力されないことに気付きました。後から、webpack がグローバルにインストールされていないことが原因かもしれないと考えました。以前も使ったことがあるので、これは最も起こりにくい問題だと思います。

次に、webpackとwebpack-cliを再インストールするか、前の手順を実行して、srcファイルを手動で作成します。

4. webpackテストを実行する

CommonJS仕様: サーバーサイドモジュール化仕様に基づくノード出力

スロー: modules.exports
インポート: 必要

ES6 モジュール:

'' から xxx をインポート
エクスポートデフォルト {}

webpack はデフォルトで js および json ファイルの導入のみをサポートしているため、.css .png.html などの他のファイルタイプを JS に導入する場合は、解析用の適切なローダーをインストールする必要があります。

さまざまなローダー(ファイルパーサー)を構成する

Babel関連のインストール

BabelとReact関連のローダーをインストールする

cnpm と babel-loader @babel/core @babel/preset-env -D

CSSローダーをインストールする

npm i css-loader スタイルローダー -D
cnpm i css-loader スタイルローダー -D

HTMLプラグインをインストールする

npm と html-webpack-plugin -D を実行します。
cnpm と html-webpack-plugin -D

PS: [開発環境と本番環境にインストールされた依存関係の違い]

開発環境、つまり、プロジェクトのコーディング段階で必要な依存関係。これらは、--save-dev または -D コマンドを使用してインストールされる webpack ビルド ツール、babel ローダーなど、オンラインになった後は参照する必要はありません。

実稼働環境では、プロジェクトがオンラインになり、外部サービスを提供し始めた後も、jQuery ライブラリ、ルーティングなどの依存関係のサポートが必要になります。これらは、--save または -S コマンドを使用してインストールできます。
プロジェクトのルート ディレクトリに webpack.config.js 構成ファイルを作成し、次の構成を順番に完了します。

(1)構成エントリ

module.exports = { エントリ:'./src/index.js' }

(2)出力の設定

定数パス = require('path');
      モジュール.エクスポート = {
          // ...
          出力: {
              パス: path.resolve(__dirname, 'dist'),
              ファイル名: 'main.js'
          }
      }

(3)構成ローダー

モジュール.エクスポート = {
    // ...
    モジュール:{
        ルール:[
            {
                テスト: /\.css$/,
                使用:['style-loader','css-loader']
            },
            {
                test: /\.js?$/, // jsx/js ファイルの正規表現 exclude: /node_modules/, // node_modules フォルダーを除外 use:{
                    // ローダーは babel です
                    ローダー: 'babel-loader',
                    オプション:
                        // babel エスケープ設定オプション babelrc: false,
                        プリセット: [
                            [require.resolve('@babel/preset-env'), {モジュール: false}]
                        ]、
                        キャッシュディレクトリ: true
                    }
                }
            }
        ]
    }
}

(4)プラグインの設定

HtmlWebPackPlugin は 'html-webpack-plugin' を必要とします。
モジュール.エクスポート = {
	// ...
	プラグイン:[
		新しいHtmlWebPackプラグイン({
			テンプレート: 'public/index.html',
			ファイル名: 'index.html',
			注入: 真
		})
	]
}

パッケージ化コマンドを実行する

npx webpack --mode 開発

パッケージ化操作を実行するには、npm run build コマンドを構成します。

//package.jsonファイルにビルド項目を追加{
    「スクリプト」: {
        "ビルド": "webpack --mode プロダクション"
    }
}

パッケージ化コマンドを実行します。

npm 実行ビルド

ローカルサーバーを構築する

依存関係をインストールする

cnpm と webpack-dev-server -D

webpack.config.js ファイルでローカル サービス関連の情報を構成する

モジュール.エクスポート = {
          // ...
          開発サーバー: {
              コンテンツベース: './dist',
              ホスト: 'localhost',
              ポート: 3000
          }
      }

package.jsonファイルで起動コマンドを設定する

{
    「スクリプト」: {
        "開始": "webpack-dev-server --mode 開発 --open"
    }
}

サービス開始コマンドを実行する

npm スタート

そして統合

Vueとの統合

vue-loader: vue ファイルを解析する vue-template-compiler

      インストール: npm install vue-loader vue-template-compiler -D
      webpack ファイルを設定します: {test:/\.vue$/,use:['vue-loader']},

      vueLoaderPlugin プラグインをインスタンス化します。const { VueLoaderPlugin } = require('vue-loader')
      プラグインのインスタンス化を追加します。
       },
          プラグイン: [
              新しい VueLoaderPlugin()
          ]

より少ない統合

インストール: npm install less-loader less -D
構成:
 モジュール: {
        ルール:
            {test:/\.less$/,use:['style-loader','css-loader','less-loader']},
        ]
    },

Sassとの統合

インストール: npm install sass-loader node-sass -D
構成:
 モジュール: {
        ルール:
            {test:/\.(scss|sass)$/、use:['style-loader','css-loader','sass-loader']}、
        ]
    },

Sass 共通構文: https://www.jb51.net/article/222337.htm

vue-routerで

インストール: npm install vue-router -D

vuexとの統合

インストール: npm install vuex -D

これで、webpack で vue 環境を構築する際の例外エラーの解決に関するこの記事は終了です。webpack で vue 環境を構築する際のエラーに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue init webpack の依存関係のダウンロードが停止する問題を解決する
  • Maptalks+three.js+vue webpackは、2次元マップに3次元モデルを貼り付ける操作を実装します。
  • vue+webpackプロジェクトのクロスドメインインターフェースの問題を解決する
  • Webpackを使ったVue3開発環境の構築手順を詳しく解説
  • webpack+vue-cil での ProxyTable 設定インターフェース アドレス プロキシ操作
  • Vue webpack ビルド リソース相対パスの問題と解決策

<<:  Docker で Zookeeper をインストールする (スタンドアロンおよびクラスター)

>>:  MySql ビュー、トリガー、ストアド プロシージャに関する簡単な説明

推薦する

MySQL に大量のデータを挿入するときに重複データを除外する方法

目次1. 問題を発見する2.重複したデータを残さずにすべて削除する3. 削除テーブルから重複データを...

MySql ログイン パスワードを忘れた場合とパスワードを忘れた場合の解決策

方法1: MySQL では、次のコマンド ラインで MySQL サーバーを起動することにより、アクセ...

MySQLで一意のサーバーIDを生成する方法

序文MySQL では、server-id を使用してデータベース インスタンスを一意に識別し、それを...

vue+springbootでログイン機能を実現

この記事の例では、ログイン機能を実現するためのvue+springbootの具体的なコードを参考まで...

いくつかの重要なMySQL変数

MySQL 変数は数多くありますが、その中には注目に値するものもあります。ここでは、参考までに、注目...

選択タグ内のオプションをクリアする3つの方法

方法1コードをコピーコードは次のとおりです。 document.getElementById(&qu...

リアルタイムクロックを実装するネイティブJS

ネイティブ JS で実装したリアルタイム クロック エフェクトを共有します。エフェクトは以下のとおり...

Vue 画像切り抜きコンポーネントのサンプルコード

例:ヒント:このコンポーネントはvue-cropperの二次パッケージに基づいていますプラグインをイ...

Ant Design Blazor コンポーネントライブラリのルーティング再利用マルチタブ機能

最近、Ant Design Blazor コンポーネント ライブラリにマルチタブ コンポーネントを実...

CSS スクロールバースタイル変更コード

CSS スクロールバースタイル変更コード .scroll::-webkit-scrollbar { ...

MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

2 つのパラメータ innodb_flush_log_at_trx_commit と sync_bi...

MySQL ロール関数の紹介

目次序文: 1. 役割の紹介2. 役割に関連する操作要約:序文:前回の記事では、MySQLの権限管理...

Javascript DOM、ノード、要素取得の紹介

目次DOMノード要素ノード:テキストノード:プロパティ ノード:要素を取得getElementByI...

antd ツリーと親子コンポーネント間の値転送問題について (React のまとめ)

プロジェクト要件: 製品ツリー ノードをクリックすると、そのノードのすべての親ノードが取得され、表に...

コンテンツタイプの説明、つまりHTTPリクエストヘッダーのタイプ

コンテンツ タイプについて学ぶには、まずそれが何であるか、そして何に使用されるかを知る必要があります...