LinuxサーバーにVueプロジェクトをデプロイする

LinuxサーバーにVueプロジェクトをデプロイする

ケース1

vue-cliはvue3プロジェクトをビルドし、プロジェクトをLinuxサーバーにアップロードし、サーバーにノードをインストールし、vueプロジェクトを開始します。

まず、ローカルにvueプロジェクトがあり、起動後に通常通りアクセスできます。

ローカルパッケージング後、直接アクセスすることもできます

パッケージ化後に index.html ページが空白の場合は、プロジェクトのルート パスに新しい vue.config.js を作成し、再パッケージ化する必要があります。

LinuxサーバーにNode.jsをインストールするには、

# ノードの圧縮パッケージをダウンロードします。コマンドが実行されるパスがダウンロード先のパスになります。wget https://npm.taobao.org/mirrors/node/v12.16.1/node-v12.16.1-linux-x64.tar.gz      
# 圧縮パッケージを /usr/local/bin/ パスに切り取り、解凍します tar -xvf node-v12.16.1-linux-x64.tar.gz       
# フォルダ名をNodeJsに変更します   
  mv node-v12.16.1-linux-x64 NodeJs  
# gccをインストールする        
  yum で gcc をインストールします。gcc-c++            
# /usr/local/bin/NodeJs/bin パスには 3 つのファイルがあります: node npm npx
# これら 3 つのファイルにソフトリンクを設定します。/usr/bin ディレクトリはシステムコマンドの保存に使用されます。このとき、任意のパスで node を実行することは、/usr/local/bin/NodeJs/bin/node パスのファイルを実行することと同じです。node を実行すると、node 環境に入ります。ln -s /usr/local/bin/NodeJs/bin/node /usr/bin/node         
  NodeJs の bin に npm を追加します。          
  ln -s /usr/local/bin/NodeJs/bin/npx /usr/bin/npx         
# ルートディレクトリに入る cd
# ノードを検証する

VueプロジェクトをLinuxサーバーにアップロードし、コンパイルして実行する

# vueプロジェクトのルートディレクトリに入る cd /home/web
# 依存関係をインストールする npm install
# コンパイルしてパッケージ化する npm run build
# プロジェクトを開始する npm run serve 

テスト

エラーの概要

Linux サーバー上でプロジェクトをコンパイルすると、ノード バージョンが低すぎることを示す次のエラーが報告されます。

Linuxサーバー上でプロジェクトをコンパイルすると、ノードバージョン17.1.0が高すぎることを示す次のエラーが報告されます。

解決策、参考資料

# 以前にyumを使用してnodeをインストールしたことがある場合は、アンインストールして再インストールする必要があります。インストール手順については、このブログの`source package`を使用したインストール方法を参照してください。# nodejsをアンインストールする
  yum 削除 nodejs npm -y
# /usr/local/lib に入り、すべての node および node_modules フォルダを削除します # /usr/local/include に入り、すべての node および node_modules フォルダを削除します # /usr/local/bin に入り、node 実行可能ファイルを削除します

プロジェクトのコンパイル時または開始時に「権限が不十分です」というエラーメッセージが表示される場合

解決

# 指定されたファイルの権限を設定する chmod 777 /home/web/xxx

プロジェクト実行時のエラー: --fix オプションで修正可能な警告

解決策: プロジェクトの package.json の "lint": "vue-cli-service lint" を eslint --fix --ext .js,.vue src に変更します。

参照する

ケース2

vue-cliはvue3プロジェクトをビルドし、パッケージ化後にdistファイルをtomcatに配置します。

Linux サーバーに Tomcat をインストールする

# docker を使用して tomcat コンテナをプルします docker pull tomcat   
# docker run -d -p 8080:8080 tomcat をバックグラウンドで起動します    
# 起動後、ブラウザはhttp://192.168.0.102:8080/にアクセスし、404を返します。
# 解決:
# ポート 8080 を外部に開きます。firewall-cmd --zone=public --add-port=8080/tcp --permanent  
# 有効にするにはファイアウォールを再起動します。firewall-cmd --reload     
# tomcatコンテナに入る docker exec -it 実行中のコンテナID /bin/bash     
# webapps.dist ディレクトリ内のすべてのファイルを webapps パスにコピーします cp -r webapps.dist/* ./webapps        
# webapps.dist ディレクトリを削除します rm -rf webapps.dist           
# これでブラウザから tomcat ページにアクセスできますが、再起動後も tomcat イメージには 404 が表示されます。現在変更されているコンテナを新しいイメージとして送信する必要があります。# コンテナを停止せずに終了 ctrl + p + q                  
# 実行状態のカスタム コンテナを送信します。tomcat10:10.1 はカスタム イメージ名とバージョン番号です。docker commit -a="Author" -m="Notes" 実行中のコンテナ ID は tomcat10:10.1 です。       
#現在のTomcatコンテナを停止します。dockerは実行中のコンテナIDを停止します。    
# docker rm を実行した後、コンテナ ID を削除します    
# 送信したイメージを起動します docker run -d -p 8080:8080 tomcat10:10.1         
 
# 補足# tomcat イメージを起動すると、エラーが報告されます: ドライバーはエンドポイント quirky_allen で外部接続のプログラミングに失敗しました
# エラーの原因: バックエンド プロジェクトが以前に開始されたときにポート 8080 が占有されていたため、バックエンド プロジェクトを終了する必要があります # テストするには、http://192.168.0.102:8080 にアクセスし、正常に起動したことを示す tomcat ページを確認します

パッケージ化されたプロジェクトをTomcatコンテナに入れる

# 共有フォルダを作成する mkdir -p /home/mydocker/mytomcat8080/data
# コンテナ 8080 を起動します:
  docker 実行 \
  -p 8080:8080 \
  --name my-tomcat8080 \
  -v /home/mydocker/mytomcat8080/data:/usr/local/tomcat/webapps \
  -d \
  トムキャット10:10.1
# コンテナの起動時にエラーが発生しました: docker: 参照形式が無効です。
# エラーの原因: docker コマンドの記述が間違っています。ここでは -v /home/mydocker/mytomcat8080/data:/usr/local/tomcat/webapps \ と記述しました。コロンの後に余分なスペースがあります。# vue プロジェクトのルート ディレクトリを入力し、パッケージ化後に dist フォルダーを生成します。ここでは、ケース 1 のプロジェクト npm install を引き続き使用します。
  npm 実行ビルド
# パッケージ化されたファイルをTomcatにコピーする
  mv dist /home/mydocker/mytomcat8080/data
#Tomcatコンテナを再起動します。docker restart tomcat container id
# テスト、ローカルアクセス http://192.168.0.102:8080/dist/ 

これで、Linux サーバーに Vue プロジェクトをデプロイする方法に関するこの記事は終了です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援して頂ければ幸いです。

以下もご興味があるかもしれません:
  • vue.js パッケージ化プロジェクトの後の空白ページの解決策
  • Vue3.0 エラーの解決策: モジュール 'worker_threads' が見つかりません

<<:  divの適応高さは残りの高さを自動的に埋めます

>>:  Windows で Nginx を使用して https サーバーとリバース プロキシを構成する際の問題

推薦する

メタタグの詳しい説明(メタタグの役割)

個人のウェブサイトがどんなに素晴らしいものであっても、サイバースペースの広大な海に浮かぶ小さなボート...

IE6 スペースバグ修正方法

コードを見てみましょう:コードをコピーコードは次のとおりです。 < !DOCTYPE html...

Dockerでnginxをデプロイし、設定ファイルを変更する方法

Dockerでnginxをデプロイするのはとても簡単ですたった 1 行のコマンド: docker 実...

TypeScript を使用して Vue3 で axios をカプセル化する詳細な例

この axios パッケージは、vue3 デモで使用されます。便宜上、element-plus は ...

MYSQL メタデータ ロック (MDL ロック) MDL ロックの問題分析

1. はじめにMYSQL の MDL ロックは常に頭痛の種でした。ロックについて話すとき、通常は I...

燃える炎効果の英語フォント16種類をシェアする

私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...

Linux の高性能ネットワーク IO と Reactor モデルの分析

目次1. 基本概念の紹介2. ネットワークIOの読み取りと書き込みのプロセス3. 5つのLinuxネ...

Webデザインチュートリアル(3):デザインの手順と考え方

<br />前のチュートリアル:Webデザインチュートリアル(2):模倣と盗作について。...

MySQL DML ステートメントの概要

DML 操作とは、データベース内のテーブル レコードに対する操作を指し、主にテーブル レコードの挿入...

Vueカスタムツリーコントロールの使い方の詳細な説明

この記事では、Vueカスタムツリーコントロールの使い方を参考までに紹介します。具体的な内容は次のとお...

Vue3 トランジションアニメーションの落とし穴記録について

目次背景問題の場所さらなる分析要約する背景私のコース「Vue 3 エンタープライズレベルの音楽アプリ...

Vueコンポーネントが相互に値を転送する方法の詳細な説明

目次概要1. 親コンポーネントが子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに...

5分でReactルーティングについてお教えします

目次ルーティングとは純粋コンポーネントの基本的な使用純粋なコンポーネントの使用に関する注意事項ルーテ...

Tomcat のパフォーマンス最適化方法の簡単な概要

Tomcat自体の最適化Tomcat メモリ最適化起動時に大きなメモリ ブロックが必要であることを ...

Vueはテーマ切り替えのための複数のアイデアを実装します

目次テーマを動的に変更する最初の方法: 動的コンポーネント2番目の方法はルーティング分離です要約する...