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 ビュー、トリガー、ストアド プロシージャに関する簡単な説明

推薦する

テキストエリア テキストエリアの幅と高さ 幅と高さの自動適応実装コード

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

Mysql5.7でのスケジュールバックアップの実装

1. MySQL インストール パス D:\xxx\MYSQL\MySQL Workbench CE...

DockerはRedisを起動し、パスワードを設定します

RedisはRedisバージョン5のapline(Alps)イメージを使用します。これは小さくて高速...

Linuxはiftopを使用してネットワークカードのトラフィックをリアルタイムで監視します

Linux は iftop を使用してネットワーク カードのトラフィックをリアルタイムで監視します。...

WeChat アプレット ピッカー マルチ列セレクター (モード = multiSelector)

目次1. 効果図(複数列) 2. 通常セレクター: mode = selector、複数列セレクター...

Vue はコンポーネント間の通信をどのように実装しますか?

目次1. 父と息子のコミュニケーション1.1 親コンポーネント --> 子コンポーネント1.2...

JS を使用して HTML で回転するクリスマスツリーを実装する

<!DOCTYPE ヘムル パブリック> <html> <ヘッド&g...

CentOS での mysql5.7 の詳細なインストールと設定のチュートリアル

インストールユーザーにインストール権限があることを確認してくださいルートスイッチなしsuルート(su...

count(1)、count(*)、count(列名)の実行の違いの詳細な説明

実施効果: 1. count(1) と count(*)テーブル内のデータ量が多い場合、テーブルを分...

XHTML CSS ウェブサイトデザインの利点と問題点

XHTML は現在国際的に推奨されている標準的な Web サイト設計言語です。Webjx.com も...

docker-compose が遅すぎる場合の解決策の詳細な説明

解決策はただ一つ、ソースを変更することです。 github からのソースは基本的にタイムアウトするの...

Windows 版 MySQL のインストール、起動、基本設定に関する詳細なグラフィック チュートリアル

ダウンロード:ステップ 1: ウェブサイトを開きます (ダウンロードするには公式ウェブサイトにアクセ...

Vue開発ウェブサイトSEO最適化方法の詳細な説明

ページデータの表示には Vue などの js のデータバインディング機構が使用されるため、クローラー...

MySQL データベース開発の 36 の原則 (要約)

序文これらの原則は実際の戦闘から要約されています。あらゆる原則の背後には血なまぐさい教訓があるこれら...

ボタンに醜い灰色の枠線が付いています。これを削除するにはどうすればよいですか?

ダイアログをクロージャで使用し、右上隅の向こう側に閉じるボタンがあるダイアログを描画しました。ボタン...