Vue サーバーに js 構成ファイルをインポートする方法

Vue サーバーに js 構成ファイルをインポートする方法

背景

プロジェクトにはローカル構成ファイルがあります:

// src/image-position.js
エクスポートデフォルト{
    ラベル: 'ホームページ',
    値: 'home'、
    データ: [
      {
        ラベル: 「カルーセル」、
        値: 'カルーセル'
      }
    ]
}

ローカル ファイルを参照する方法は誰でも知っています。

'./image-position.js' から ImagePosition をインポートします。

次に、image-position.js ファイルをサーバーにドロップし、そのリンクを取得する必要があります。

xxx.com/static/imag…

現時点では、当然ながら、ファイル アドレスを直接引用することは不可能です。

'https://xxx.com/static/image-position.js' から ImagePosition をインポートします。

// エラー この依存関係は見つかりませんでした

成し遂げる

まず、image-position.jsに小さな変更を加えて、グローバルオブジェクトImagePositionを公開します。

// 変更された image-position.js

(関数 (グローバル、ファクトリー) {
  typeof エクスポート === 'オブジェクト' && typeof モジュール !== '未定義' 
    ? module.exports = ファクトリー() 
    : typeof define === 'function' && define.amd 
    ? 定義(ファクトリー) 
    : (global = global || self、global.ImagePosition = factory());
}(これ、(関数() {
  '厳密な使用';
  
  戻る {
    ラベル: 'ホームページ',
    値: 'home'、
    データ: [
      {
        ラベル: 「カルーセル」、
        値: 'カルーセル'
      }
    ]
  };
})));

vue.config.js ファイルに外部を追加します。

モジュール.エクスポート = {
  Webpack の設定: config => {
    config.externals = {
      '画像の位置': '画像の位置'
   }
  }
}

index.html は環境を区別し、js ファイルをインポートします。

// 公開/index.html
<!DOCTYPE html>
<html>
  <ヘッド>
    <メタ文字セット="utf-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge,chrome=1">
    <meta name="レンダラー" content="webkit">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1、最大スケール=1、ユーザースケーラブル=いいえ">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <本文>
    <div id="アプリ"></div>
    <!-- ビルドされたファイルは自動的に挿入されます -->
    <% if (NODE_ENV == 'production') { %>
      <script src="http://xxx.com/static/image-position.js"></script>
    <% } それ以外の場合は { %>
      <script src="http://test.xxx.com/static/image-position.js"></script>
    <% } %>
  </本文>
</html>

上記の手順を完了すると、image-position.js ファイルを問題なく参照できるようになります。

'image-position' から ImagePosition をインポートします
console.log(画像の位置)
// {ラベル: 'ホーム'、値: 'ホーム'、データ: [{ラベル: 'カルーセル'、値: 'カルーセル'}]}

vue-cli2.0での設定方法の補足

// ビルド/webpack.base.conf.js
モジュール.エクスポート = {
  外部: {
    // 'image-position' を追加: 'ImagePosition'
  }
}
// インデックス.html
<!DOCTYPE html>
<html>
  <ヘッド>
    <メタ文字セット="utf-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge,chrome=1">
    <meta name="レンダラー" content="webkit">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1、最大スケール=1、ユーザースケーラブル=いいえ">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <本文>
    <div id="アプリ"></div>
    <!-- ビルドされたファイルは自動的に挿入されます -->
    <% if (process.env == 'production') { %>
      <script src="http://xxx.com/static/image-position.js"></script>
    <% } それ以外の場合は { %>
      <script src="http://test.xxx.com/static/image-position.js"></script>
    <% } %>
  </本文>
</html>

要約する

Vue プロジェクトのパッケージ化ボリュームの最適化では、CDN アクセラレーションがよく使用される方法です。上記は、実際に CDN アクセラレーションの実装内容です。サードパーティのライブラリは、script タグを通じて導入され、パッケージ化された vendor.js ファイルのサイズが大幅に削減されます。

ローカル ファイルをリモートでサーバー上に配置したい場合、鍵となるのは実装プロセスの最初のステップです。残りの内容は、CDN アクセラレーションを構成するプロセスと同じです。

上記は、Vue がサーバー上の js 構成ファイルをインポートする方法の詳細です。Vue の js 構成ファイルのインポートの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue-cli3にvue.config.jsフォルダがなく、vueプロジェクトのドメイン名を設定する問題を解決します
  • vue.config.js を設定して静的フォルダ内の静的ファイルを処理する方法
  • Vue の Eslint 設定ファイル eslintrc.js の説明とルールの紹介
  • vue-cliのビルドフォルダにモックデータを設定するためのdev-server.jsファイルがありません
  • vue-cli スキャフォールディング ビルド ディレクトリ内の utils.js ツール構成ファイルの詳細な説明
  • vue-cli スキャフォールディング設定ディレクトリ内の index.js 設定ファイルのメソッド
  • vue-cli スキャフォールディング ビルド ディレクトリ内の dev-server.js 構成ファイルの詳細な説明
  • vue-cli の ESlint 設定ファイル eslintrc.js の詳細な説明

<<:  Linux で指定されたフォルダの各サブフォルダ内のファイル数を表示する

>>:  Dockerイメージをプライベートリポジトリにアップロードする方法の例

推薦する

フォーム要素の簡単な実装コードでは登録を例に挙げています

コード実装:コードをコピーコードは次のとおりです。 <!DOCTYPE html> &l...

MySQL データベースで UTF-8 エンコードを設定する方法

/etc/my.cnf または /etc/mysql/my.cnf ファイルを変更する [クライアン...

Vue は無限ロードウォーターフォールフローを実装します

この記事では、参考までに、無限ロードウォーターフォールフローを実現するためのVueの具体的なコードを...

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

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

テーブルを開く際のMySQLスレッドの問題の解決方法

問題の説明最近、MySQL5.6.21サーバーがありました。アプリケーションがリリースされた後、同時...

MySQL の簡単な分析 - MVCC

バージョンチェーンInnoDB エンジン テーブルでは、クラスター化インデックス レコードに 2 つ...

three.js を使って立体的な矢印線を描く詳細な手順

需要: この需要は緊急に必要です!地下鉄のシーンでは、脱出経路を示す矢印を描かなければなりません。こ...

Ubuntu 16.04 カーネルのアップグレード手順

1. 環境仮想マシン上で実行されているUbuntu 16.04では、コマンドuname -rを使用し...

Vueアイコンセレクターのサンプルコード

出典: http://www.ruoyi.vip/ 'vue' から Vue をイン...

JavaScriptのポイントごとのシリーズでこれは何ですか

これを理解するおそらく、他のオブジェクト指向プログラミング言語でもthis見たことがあり、これがコン...

フロントエンド Vue ユニットテストを始める

目次1. ユニットテストはなぜ必要なのでしょうか? 2. ユニットテストの書き方3. テストツール4...

Linux チェックアップ、Linux の状態 (ネットワーク IO、ディスク、CPU、メモリ) を把握

目次1. コアコマンド2. 共通コマンド3. コアコマンドの詳細な説明3.1、ps補助3.2 トップ...

Docker イメージのデフォルトの保存場所を変更する方法 (ソリューション)

システムの初期のパーティション分割により、オペレーティング システム内の対応する / パーティション...

MySQL 外部キー制約の一般的な操作の例 [表示、追加、変更、削除]

この記事では、例を使用して、MySQL 外部キー制約の一般的な操作について説明します。ご参考までに、...

ホームページのデザインはウェブデザイナーのレベルを最もよく反映する

私がこれまで携わってきた多くのプロジェクトでは、基本的に避けられない悪循環がありました。それは、ホー...