Vueプロジェクトのパッケージ化、起動、最適化
Vueプロジェクトのパッケージ化
ターミナルを開き、プロジェクトのルートディレクトリに切り替えます コマンドを入力してください: 現在のプロジェクトのルートディレクトリにdistフォルダが生成され、パッケージ化されたファイルが含まれます。 プロジェクトホスティング
エクスプレスサーバーの作成 var express = require('express') 定数パス = require('path') // 2. サーバーを作成する var app = express(); // 静的リソースのホスティング // すべての静的リソースを public などの指定されたディレクトリに配置し、次の構成を追加することもできます app.use(express.static('dist')) app.use('/'、express.static(path.join(__dirname、'dist'))) // 3. サーバーを起動し、ポートをリッスンします app.listen(3001, () => { コンソールログ('http://127.0.0.1:3001') }) サーバーを起動する
プロジェクトの共通最適化
プロジェクトレポートファイルを生成する npm 実行ビルド – --report レポートページを開く 1. レポート ページでは、ブロックが大きいほど、テンプレートが占めるボリュームが大きくなります。 CDNアクセラレーションの最適化
設定ファイル
パッケージ除外を追加する モジュール.エクスポート = { Webpack を構成する: { 外部:{ 'vue': 'vue', '要素-ui': '要素', '羽根ペン': '羽根ペン' } }, } ご覧のとおり、パッケージ化されたプロジェクトのサイズは大幅に縮小されましたが、問題は解決されていません。これらのパッケージがないと、パッケージ化されたプロジェクトを実行できません。 これは、パッケージ化されたプロジェクトに Vue パッケージがないため、エラーが発生するためです。これらのリソースを提供するには、CDN を使用する必要があります。 CDNのユーザーカスタマイズを追加 vue.config.jsに次のコードを追加します。 cdn = {とする css: [ //要素UI CSS 'https://unpkg.com/element-ui/lib/theme-chalk/index.css', // スタイルシート // リッチテキストボックスプラグインスタイル 'https://cdn.bootcdn.net/ajax/libs/quill/2.0.0-dev.4/quill.bubble.css' ]、 js: [ // 最初に vue が必要です。 'https://unpkg.com/vue/dist/vue.js', // vuejs // 要素 UI js 'https://unpkg.com/element-ui/lib/index.js', // 要素UI // リッチ テキスト ボックス プラグイン 'https://cdn.bootcdn.net/ajax/libs/quill/2.0.0-dev.4/quill.js' ] } プラグインを通じてページにリソースを自動的に追加する プラグインにリソースをマウントする モジュール.エクスポート = { // 次の構成のパッケージが将来プロジェクトにパッケージ化されないことを示すためにパッケージ化除外を追加します。configureWebpack: { 外部:{ 'vue': 'vue', '要素-ui': '要素', '羽根ペン': '羽根ペン' } }, //CDNリソースをプラグインチェーンにマウントするWebpack (config) { config.plugin('html').tap(args => { args[0].cdn = cdn 引数を返す }) } } プラグインを使用して、指定された CDN リソースをページに追加し、プロジェクトのパブリック インデックス (プロジェクトがパッケージ化される前のインデックス ファイル) に次のコードを追加します。 CSSインポートを追加する(ヘッド構造内) <% for(var css of htmlWebpackPlugin.options.cdn.css) { %> <link rel="スタイルシート" href="<%=css%>" /> <% } %> js インポートを追加する (body 構造内) <% for(var js of htmlWebpackPlugin.options.cdn.js) { %> <script src="<%=js%>"></script> <% } %> 再梱包、OK 実稼働段階でのみ CDN を使用するように設定する
const isProd = process.env.NODE_ENV === 'production' // 本番環境ですか? let externals = { 'vue': 'vue', '要素-ui': '要素', '羽根ペン': '羽根ペン' } cdn = {とする css: [ //要素UI CSS 'https://unpkg.com/element-ui/lib/theme-chalk/index.css', // スタイルシート // リッチテキストボックスプラグインスタイル 'https://cdn.bootcdn.net/ajax/libs/quill/2.0.0-dev.4/quill.bubble.css' ]、 js: [ // 最初に vue が必要です。 'https://unpkg.com/vue/dist/vue.js', // vuejs // 要素 UI js 'https://unpkg.com/element-ui/lib/index.js', // 要素UI // リッチ テキスト ボックス プラグイン 'https://cdn.bootcdn.net/ajax/libs/quill/2.0.0-dev.4/quill.js' ] } cdn = isProd ? cdn : { css: [], js: [] } 外部 = isProd ? 外部: {} モジュール.エクスポート = { // 次の構成のパッケージが将来プロジェクトにパッケージ化されないことを示すためにパッケージ化除外を追加します。configureWebpack: { 外部 }, // チェーンWebpack(設定){ config.plugin('html').tap(args => { args[0].cdn = cdn 引数を返す }) } } これで、vue プロジェクトのパッケージ化と最適化の実装手順に関するこの記事は終了です。vue プロジェクトのパッケージ化と最適化に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Deepin で virtualenv をインストールして使用するチュートリアル
>>: Mysqlのインポートとエクスポート時に発生する問題の解決
コードをコピーコードは次のとおりです。 <フォームメソッド="post" ...
目次フィルター01.とは02. やり方(1)フィルターを定義する(2)使用方法(3)フィルタパラメー...
概要インデックスは、テーブル内の 1 つ以上の列に基づいて DBMS によって特定の順序で作成される...
テーブルを作成するテーブル order(id varchar(10),date datetime,o...
データベースの移行は、よく遭遇する問題です。データ量が少ない場合、移行は基本的に問題になりません。実...
目次プロトタイプを理解するプロトタイプオブジェクトを理解するインスタンスプロパティとプロトタイププロ...
メタタグは、HTML言語のヘッド領域にある補助タグです。HTML文書のヘッダーにあるヘッドタグとタイ...
実装のアイデア一番外側は大きな円(グラデーションカラー)グラデーションの円を覆うように、内側に半円を...
Web ページには、非常に複雑な HTML 構造があります。CSS を使用して関連するスタイルを定義...
HTML イベント リスト一般イベント: onClick HTML: マウスクリックイベント。主にオ...
この記事では、適応解像度を実現するためのVue2.0の具体的なコードを参考までに紹介します。具体的な...
環境の準備操作を開始する前に、hadoop バージョンがインストールされていることを確認してください...
クラスを見るとき、どのような情報を得たいですか?このクラスはどこで使用され、その機能は何ですか?この...
目次1.スリープ機能2.タイムアウトを設定する3. 約束4. 非同期待機5. 1秒後に出力1、2秒後...
指令とは何ですか? Angular と Vue はどちらもディレクティブの概念を持っており、これは通...