10分で自分のVue CLI 3プロジェクトテンプレートを構築
6013 ワード
0 x 01契機
Vue CLI 3が出てきてからずいぶん経ちましたが、ずっとそのプラグインシステムを研究しようとしても時間がありませんでした~~(実は怠け者ですが)、ちょうど最近プロジェクトグループの規範を統一する必要があります~~~~、そこできっかけがありました.
まずドキュメントを見てください:CLI 3プラグインとPreset
それから、フロントエンドのプロジェクトテンプレートを完全にカスタマイズする方法を教えてあげます.お母さんは私がコピーして貼るたびに心配する必要はありません.
特に説明:このpresetはnpmに公開する必要はなく、github、gitlab、git repoをサポートし、直接ローカルに導入することもできますよ~
0 x 02両名詞
プラグイン
名前の通りプラグインです Vue CLIは、プラグインベースのアーキテクチャ を使用しています.プラグインベースのアーキテクチャにより、Vue CLIを柔軟かつ拡張可能にする .
Preset
プリセットに翻訳可能新しいプロジェクトの作成に必要な事前定義オプションとプラグインを含むJSONオブジェクト はまた、本明細書で説明するように、予め設定されたプロジェクトテンプレートとして理解される.
各preset.jsonは大体このようなフォーマットです.
0 x 03両者の違い
プラグイン
1つのプラグインには、次の3つのセクションがあります. Serviceプラグイン generatorファイル(オプション) promptsファイル(オプション) Preset
1つのPresetプロジェクトには、次の3つのセクションがあります. preset.json generatorファイル(オプション) promptsファイル(オプション) 2つの違いは、プラグインにはサービスプラグインが必要であり(これは本明細書で説明するプラグインの範疇よりも狭い)、Presetにはpresetが含まれる必要があることである.json
0 x 04コアコンセプト
本文は主にPresetを話しているので、残りの核心概念はドキュメントを見ればいいですね:核心概念
Prompts
本質的には会話プロファイルであり、vue内蔵プラグインとサードパーティプラグインのこのファイルの書き方は異なります.覚えておいてください.
それはInquirerです.jsの問題の配列
例は次のとおりです.
もちろん使えないなら空の配列を直接あげればいいですよ.
実行の効果は、次のようになります.
Generator
3つのパラメータを受信する関数をエクスポートするジェネレータと呼ばれます api:GeneratorAPIインスタンス options:prompts問題配列のユーザ入力を組み合わせたオプションオブジェクト と簡単に理解できる. rootOptions:preset全体.jsonオブジェクト
0 x 05実戦
上のコードは筆者が空の棚を用意しました.
vue-preset-template
皆さんはまずcloneを降りて、それから走って効果を感じることができます.
筆者の倉庫に直行する
clone降りてローカルコードを走る
git倉庫のpresetを走る
はい、自分のプロジェクトテンプレートを発表するまであと一歩しかありません.それはtemplateフォルダの内容を記入することです.
実はプロジェクトで使われているファイルをそのまま入れておけばいいのですが、
0 x 06参照項目
筆者は2つのpresetを整理して、starを歓迎します PCエンドプロジェクトテンプレート:vue-preset-pc モバイル端末プロジェクトテンプレート:vue-preset-mobile 0 xFFドキュメント原文リンク CLI 3プラグインとPreset プラグインコアコンセプト ラック 公衆番号:コード力全開
Vue CLI 3が出てきてからずいぶん経ちましたが、ずっとそのプラグインシステムを研究しようとしても時間がありませんでした~~(実は怠け者ですが)、ちょうど最近プロジェクトグループの規範を統一する必要があります~~~~、そこできっかけがありました.
まずドキュメントを見てください:CLI 3プラグインとPreset
それから、フロントエンドのプロジェクトテンプレートを完全にカスタマイズする方法を教えてあげます.お母さんは私がコピーして貼るたびに心配する必要はありません.
特に説明:このpresetはnpmに公開する必要はなく、github、gitlab、git repoをサポートし、直接ローカルに導入することもできますよ~
0 x 02両名詞
プラグイン
名前の通りプラグインです
Preset
プリセットに翻訳可能
vue create
を使用してプロジェクトを作成したパートナーは、作成が完了するとCLIがpresetとして保存するかどうかを示すことを覚えているはずです.ここで最初の項目は、保存するオブジェクトを指します.保存した場合は、下のコマンドで前に保存したpresetが表示されます.cat ~/.vuerc
各preset.jsonは大体このようなフォーマットです.
{
"useConfigFiles": true,
"plugins": {...},
"configs": {
"vue": {...},
"postcss": {...},
"eslintConfig": {...},
"jest": {...}
}
}
0 x 03両者の違い
プラグイン
1つのプラグインには、次の3つのセクションがあります.
1つのPresetプロジェクトには、次の3つのセクションがあります.
0 x 04コアコンセプト
本文は主にPresetを話しているので、残りの核心概念はドキュメントを見ればいいですね:核心概念
Prompts
本質的には会話プロファイルであり、vue内蔵プラグインとサードパーティプラグインのこのファイルの書き方は異なります.覚えておいてください.
それはInquirerです.jsの問題の配列
例は次のとおりです.
//
module.exports = [
{
type: 'list', //
name: 'module', // , generator options
message: ' ', //
choices: [
{ name: 'Module1', value: 'module1' },
{ name: 'Module2', value: 'module2' },
{ name: 'Module3', value: 'module3' }
],
default: 'module0',
},
{
type: 'input', //
name: 'moduleName',
message: ' ',
default: 'myModule'
}
]
もちろん使えないなら空の配列を直接あげればいいですよ.
実行の効果は、次のようになります.
Generator
3つのパラメータを受信する関数をエクスポートするジェネレータと呼ばれます
// node , node
module.exports = (api, options, rootOptions) => {
// `package.json`
api.extendPackage({
scripts: {
test: 'vue-cli-service command'
}
})
// ejs `./template`
api.render('../template')
if (options.module === 'module1') {
// options.module , : 'module0'
console.log(`Your choice is ${options.module}`)
}
if (options.moduleName === 'myModule') {
// options.moduleName
console.log(`Your input is ${options.moduleName}`)
}
}
0 x 05実戦
上のコードは筆者が空の棚を用意しました.
vue-preset-template
皆さんはまずcloneを降りて、それから走って効果を感じることができます.
筆者の倉庫に直行する
vue create --preset savokiss/vue-preset-template
clone降りてローカルコードを走る
vue create --preset ./vue-preset-template
git倉庫のpresetを走る
vue create --preset direct:
はい、自分のプロジェクトテンプレートを発表するまであと一歩しかありません.それはtemplateフォルダの内容を記入することです.
実はプロジェクトで使われているファイルをそのまま入れておけばいいのですが、
.
で始まるファイルやscssファイルの書き方が違いますので、具体的には以下の参考項目をご覧ください0 x 06参照項目
筆者は2つのpresetを整理して、starを歓迎します