HTML5テクニカルノート
Vue CLI 3入門 06: CLIサービス
- ID: FN1809001
- Technique: HTML5 / ECMAScript 2015
- Tool: Vue CLI 3.0.4
Vue CLIサービスは、Vue CLIプロジェクトにインストールされるバイナリです。デフォルトで備わっているコマンドのほか、プラグインが加えるものもあります。本稿は「CLI Service」をもとに、CLIサービスについてご説明します。
01 バイナリを使う
Vue CLIプロジェクトには、@vue/cli-service
がvue-cli-service
という名前のバイナリをインストールします。バイナリは、 npmスクリプトではvue-cli-service
で直ちに参照できます。ターミナルからは、./node_modules/.bin/vue-cli-service
です。
デフォルトのプリセットでつくられたプロジェクトでは、package.json
のscripts
でバイナリが確かめられます。
{ "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint" }, }
これらのスクリプトは、npmかYarnを用いて呼び出せます。
npm run serve # OR yarn serve
npmv5.2.0からnpxが加わりました(「npm 5.2.0の新機能! 『npx』でローカルパッケージを手軽に実行しよう」参照)。npxからは、つぎのコマンドでバイナリが直接呼び出せます。
npx vue-cli-service serve
GUIでタスクを実行する
vue ui
コマンドを使ってGUIを開けば、追加の機能を加えてスクリプトが実行できます。GUIで使える機能は、たとえばWebpackのアナライザーです(図001)。
図001■GUIのプロジェクトタスク
02 vue-cli-service serveコマンド
vue-cli-service serve
コマンドは、webpack-dev-serverにもとづいて開発用サーバーを起ち上げます。このサーバーには、Hot Module Replacement(HMR)がただちに働きます。
構文
vue-cli-service serve [options] [entry]
vue-cli-service serveコマンドのオプション
オプション | 説明 |
---|---|
--open |
開始したサーバーでブラウザを開く |
--copy |
開始したサーバーのURLをクリップボードにコピーする |
--mode |
env モードを定める(デフォルトはdevelopment )
|
--host |
ホストを定める(デフォルトは0.0.0.0 )
|
--port |
ポートを定める(デフォルトは8080 )
|
--https |
httpsを使う(デフォルトはfalse )
|
コマンドラインのフラグに加えて、開発サーバーはvue.config.js
のdevServer
フィールドを用いて設定することもできます。
03 vue-cli-service buildコマンド
vue-cli-service build
は、プロダクションに対応したビルドをdist
ディレクトリにつくります。JS/CSS/HTMLは圧縮(minify)し、キャッシュの効果が高まるベンダーチャンクの自動スプリットも行われます。チャンクマニフェストはHTMLにインライン化されます。
構文
vue-cli-service build [options] [entry|pattern]
おもなオプションを、いくつかご紹介しましょう。
アプリケーションをモダンモードでビルドするのが、--modern
オプションです。ECMAScript 2015をサポートするモダンブラウザにはネイティブコードで、レガシーバンドルには自動フォールバックします。--target
を使えば、プロジェクトの中のコンポーネントをライブラリやwebコンポーネントとしてビルドできます。詳しくは「Build Targets」をご参照ください。ビルドの統計にもとづいてレポートを出力するのは、--report
と--report-json
です。バンドルに含まれるモジュールのサイズを分析するのに役立ちます。
その他のオプションも含めて以下にまとめます。
vue-cli-service buildコマンドのオプション
オプション | 説明 |
---|---|
--mode |
env モードを定める(デフォルトはdevelopment )
|
--dest |
出力ディレクトリを定める(デフォルトはdist )
|
--modern |
モダンブラウザをターゲットにビルドして自動フォールバックにする |
--target |
app | lib | wc | wc-async (デフォルトはapp )
|
--name |
libまたはweb-componentでつける名前(デフォルトはpackage.json のname またはエントリーファイル名)
|
--no-clean |
プロジェクトをビルドする前にdist ディレクトリを削除しない
|
--report |
バンドルされたコンテンツの分析に役立つreport.html を生成する
|
--report-json |
バンドルされたコンテンツの分析に役立つreport.json を生成する
|
--watch |
変更を監視する |
04 vue-cli-service inspectコマンド
vue-cli-service inspect
を使うと、Vue CLIプロジェクトの中のwebpackの設定が調べられます。詳しくは、「Inspecting Webpack Config」をご参照ください。
構文
vue-cli-service inspect [options] [...paths]
vue-cli-service inspectコマンドのオプション
オプション | 説明 |
---|---|
--mode |
env モードを定める(デフォルトはdevelopment )
|
05 使えるすべてのコマンドを確かめる
CLIプラグインには、vue-cli-service
に追加コマンドを差し込むものもあります。たとえば、@vue/cli-plugin-eslint
が加えるコマンドはvue-cli-service lint
です。挿入されたコマンドは、つぎのようにして確かめることができます。
$ npx vue-cli-service help Usage: vue-cli-service <command> [options] Commands: serve start development server build build for production inspect inspect internal webpack config lint lint and fix source files run vue-cli-service help [command] for usage of a specific command.
さらに、各コマンドで使えるオプションは、つぎの構文で調べられます。
npx vue-cli-service help [command]
たとえば、vue-cli-service lint
でしたらつぎのとおりです。
$ npx vue-cli-service help lint Usage: vue-cli-service lint [options] [...files] Options: --format [formatter] specify formatter (default: codeframe) --no-fix do not fix errors --max-errors [limit] specify number of errors to make build failed (default: 0) --max-warnings [limit] specify number of warnings to make build failed (default: Infinity) For more options, see https://eslint.org/docs/user-guide/command-line-interface#options
06 キャッシュと並列処理
cache-loader
: デフォルトでVueとBabelおよびTypeScriptのコンパイル用に有効になっています。ファイルはnode_modules/.cache
内にキャッシュされます。コンパイルに問題が生じたときは、まずこのキャッシュのディレクトリを削除してみてください。thread-loader
: マシンに複数のCPUコアがあれば、BabelとTypeScriptのトランスパイルで有効になります。
07 Gitフック
@vue/cli-service
をインストールすると、yorkieも入ります。すると、package.json
のgitHooks
を用いて、Gitフックがつぎのようにして定められます。
{ "gitHooks": { "pre-commit": "lint-staged" } }
huskyとは互換性なし
yorkieはhuskyのフォークです。しかし、後者とは互換性がありません。
08 柔軟な設定
vue create
を用いてつくったプロジェクトは、とくに設定を加えることなくすぐに動かせます。プラグイン同士も、ほとんどの場合一緒に使える設計です。対話型のプロンプトで必要な機能を選べば済みます。
とはいえ、あらゆる要望をすべて満たすことはできません。また、プロジェクトに求められるものも、ときとともに変わるでしょう。Vue CLIでつくられたプロジェクトは、必要に応じてツールの設定がさまざまに変えられます。詳しくは「Configuration Reference」をお読みください。
Vue CLI 3入門
- Vue CLI 3入門 01: Vue CLIとは
- Vue CLI 3入門 02: インストールする
- Vue CLI 3入門 03: プロトタイプを簡単につくる
- Vue CLI 3入門 04: プロジェクトをつくる
- Vue CLI 3入門 05: プラグインとプリセット
- Vue CLI 3入門 06: CLIサービス
作成者: 野中文雄
作成日: 2018年9月30日
Copyright © 2001-2018 Fumio Nonaka. All rights reserved.