Vue-cliを使用して新しいプロジェクトを開始するとき、セットアップをカスタマイズするためにいくつかの質問をします。一般的に、プロジェクト名、説明、リンティングにエスリントを使用するかどうか、テストにカルマとモカを使用するかどうかなど。今回は私に尋ねました
? Use a-la-carte components?
Vue-cli docsで検索しましたが、何も見つかりませんでした。だから誰もが「アラカルトコンポーネント」とは何か、それを使用すべきかどうかを教えてもらえますか?
Àla carte は、「メニューに従って」を意味する英語のローンフレーズです。 「定食の一部ではなく、個別の品目として注文できる食品」を指します。
したがって、アラカルトコンポーネントを使用する場合、すべてを取得するのではなく、使用する(必要な)コンポーネントのみを含めることを意味します。
Vuetifyを使用すると、必要なものだけを簡単にインポートできるため、設置面積を大幅に削減できます。
import {
Vuetify,
VApp,
VNavigationDrawer,
VFooter,
VList,
VBtn
} from 'vuetify'
Vue.use(Vuetify, {
components: {
VApp,
VNavigationDrawer,
VFooter,
VList,
VBtn
}
})
2018/11/14を編集:
vuetify 1.3. なので、vuetify-loader
(vuetify CLIインストールに含まれています)
アプリケーションのアラカルトニーズを自動的に処理します。つまり、使用するすべてのVuetifyコンポーネントを自動的にインポートします。
まず第一に、それは実際には vuetifyプラグイン オプションであるため、ドキュメントでそのオプションを見つけられませんでした。 「アラカルト」コンポーネントが有効になっている場合、ファイル/plugins/vuetify.js
には以下が含まれている必要があります。
import Vue from 'vue'
import {
Vuetify,
VApp,
//other vuetify components
} from 'vuetify'
Vue.use(Vuetify, {
components: {
VApp,
//other vuetify components
}
})
そして、「transform-imports」プラグインを使用した完全なvuetifyインポートを防ぐために、babel.config.jsファイルを変更する必要があります。
第二に、vuetify v1.3.0-alpha.0までは、Webパックベンダーバンドルを最小限に抑えるには「アラカルト」が便利でしたが、特に開発中にvuetifyコンポーネントを選択的にインポートするのは非常に面倒です。さらに、Webpackは「アラカルトコンポーネント」の導入以来、大きく進化しています。
これらの理由から、vuetify 1.3.0-alpha.0の時点で、開発チームはWebpack 4 tree shake features(aka dead)を使用して、アラカルトコンポーネントの必要性を完全に排除する方法に取り組んでいますコードの削除) vuetify-loader これらの機能は、自動「アラカルトコンポーネント」を取得するために、vuetify公式プラグインに追加される予定です。
したがって、2番目の質問(a-la-carteを使用する必要がある場合)に対処するための答えは、noであり、もはやではありません。この機能を使用するために、vue-cli 3プロジェクトを自分でセットアップする方法は次のとおりです。
npm install -D vuetify-loader
'vuetify/lib'
の代わりに'vuetify'
からvuetifyをインポートします。コード:
import Vue from 'vue'
import Vuetify from 'vuetify/lib'
Vue.use(Vuetify)
vue.config.js
ファイルにvuetify-loaderをwebpackプラグインとして登録します(存在しない場合は、プロジェクトのルートにファイルを作成します)。コード:
const VuetifyLoaderPlugin = require('vuetify-loader/lib/plugin')
module.exports = {
configureWebpack: {
plugins: [
new VuetifyLoaderPlugin(),
]
}
// ...other vue-cli plugin options...
}
すでにa-la-carteを使用している場合は、必ずbabelプラグインのリストから「transform-imports」を削除してください(通常はbabel.config.jsにあります)
ツリーの揺れは実動モードでのみ動作するように設定されているため、--watch
または--mode development
フラグをnpm run build
コマンドで使用している場合、バンドルサイズは減る
私はそれが役立つことを願っています