[Yuanchuang Essay Competition] Vue3 エンタープライズレベルのエレガントな実践 - コンポーネント ライブラリ フレームワーク - 6 サンプル環境の構築

このシリーズの更新記事:
開発効率を向上させる実用的な vite + vue3 コンポーネント ライブラリ スキャフォールディング ツールを共有する すぐに使用できる
yyg-cli スキャフォールディング: vue3 コンポーネント ライブラリと vue3 ファミリー バケット プロジェクトを迅速に作成する
Vue3 エンタープライズ レベルのエレガンスを実践- コンポーネント ライブラリ フレームワーク - 1 pnpm monorepo の構築
Vue3 エンタープライズ レベルのエレガンスの実践 - コンポーネント ライブラリ フレームワーク - 2 ワークスペース ルートの初期化
Vue3 エンタープライズ レベルのエレガンスの実践 - コンポーネント ライブラリ フレームワーク - 3 コンポーネント ライブラリ開発環境の構築
Vue3 エンタープライズ レベルのエレガンス実際 - コンポーネント ライブラリ フレームワーク - 4 コンポーネント ライブラリの CSS アーキテクチャ
Vue3 エンタープライズ レベルのエレガントな実践 - コンポーネント ライブラリ フレームワーク - 5 コンポーネント ライブラリ ユニバーサル ツールキット

コンポーネントの作成、コンポーネント ライブラリ エントリの作成、コンポーネント ライブラリ スタイル アーキテクチャ、コンポーネント ライブラリのパブリック パッケージなど、コンポーネント ライブラリの開発環境のセットアップに多くのスペースが費やされています。多くの作業を行った結果、サンプル コンポーネント foo は実行できなくなりました。まだプレビューされていないため、この記事ではサンプル開発環境とパッケージング ビルドを構築しサンプルでコンポーネント ライブラリを使用します。

1 サンプル開発環境をセットアップする

1.1 サンプルプロジェクトの作成

例は本質的に vite3 + vue3 プロジェクトです。vite を通じて作成することも、Yaya によって作成された yyg-cli を使用してファミリー バケット プロジェクトを作成することも、手動でビルドすることもできます。その後、プログラマーの Elegant Brother は、サンプルを使用して完全なエンタープライズ レベルの中間およびバックエンド管理プロジェクトを実装し、それを使用してコンポーネント ライブラリのコンポーネント開発を推進します。

わかりやすくするために、ここでは vite を使用してサンプル プロジェクトを作成します。コマンドラインからサンプルディレクトリを入力し、以下を実行します。

pnpm create vite
  1. このコマンドを入力した後、しばらく待つと、プロジェクト名の入力を求められます。サンプルディレクトリはすでに作成しているので、ここにドット (.) を入力します。
  2. フレームワークはVueを選択します
  3. バリアントはTypeScriptを選択します

1.2 package.jsonを変更する

プロジェクトの生成後、急いで依存関係をインストールしないでください。一部の依存関係はすでにワークスペース ルートにインストールされているため、このサブモジュールに繰り返しインストールする必要はありません。

package.jsonnamedependencydevDependencyを変更し、変更内容は以下の通りです。

{
    
    
  "name": "@yyg-demo-ui/example",
  ...
  "dependencies": {
    
    
  },
  "devDependencies": {
    
    
    "@vitejs/plugin-vue": "^3.2.0",
    "typescript": "^4.6.4"
  }
}

1.3 vite設定ファイルを変更する

自動的に生成されたvite.config.tsファイルは vue プラグインのみを構成します。TSX プラグイン、ESLint プラグイン、パス エイリアスなどの他の構成を構成する必要があります。

import {
    
     defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
import eslint from 'vite-plugin-eslint'
import vueJsx from '@vitejs/plugin-vue-jsx'

export default defineConfig({
    
    
  plugins: [
    vue(),
    vueJsx(),
    eslint()
  ],
  resolve: {
    
    
    alias: {
    
    
      '@': path.resolve(__dirname, 'src')
    }
  },
  server: {
    
    
    port: 3000,
    cors: true,
    proxy: {
    
    }
  },
  build: {
    
    
    outDir: path.resolve(__dirname, '../dist')
  }
})

1.4 複数環境のサポート

このステップは必要ありません。後続のプロジェクト開発の準備をするためだけです。マルチ環境のサポートについては、以前の記事で詳しく説明されています。以前の記事を参照してください。ここでは簡単な操作だけを説明します。

  1. exampleディレクトリの下にenvディレクトリを作成し、このディレクトリに 4 つのファイルを作成します。

example/env/.env

VITE_BASE_API=/api
VITE_APP_NAME='demo app'

example/env/.env.dev

VITE_BASE_API=/dev-api
NODE_ENV=production

example/env/.env.uat

VITE_BASE_API=/uat-api

example/env/.env.prod

VITE_BASE_API=/prod-api
  1. vite.config.tsで環境ファイルのディレクトリを指定します
export default defineConfig({
    
    
  ...
  envDir: path.resolve(__dirname, 'env'),
	...
})

  1. タイプヒント用にsrcenv.d.tsファイルを作成します。
/// <reference types="vite/client" />

interface ImportMetaEnv {
    
    
  readonly VITE_BASE_API: string;
  readonly VITE_APP_NAME: string;
}

// eslint-disable-next-line no-unused-vars
interface ImportMeta {
    
    
  readonly env: ImportMetaEnv
}

  1. package.json のスクリプトを変更します。
{
    
    
  ...
  "scripts": {
    
    
    "dev:dev": "vite --mode dev",
    "dev:uat": "vite --mode uat",
    "dev:prod": "vite --mode prod",
    "build:dev": "vue-tsc --noEmit && vite build --mode dev",
    "build:uat": "vue-tsc --noEmit && vite build --mode uat",
    "build:prod": "vue-tsc --noEmit && vite build --mode prod",
    "preview": "vite preview"
  },
  ...
}

  1. main.ts の入力環境変数をテストします。
const env = import.meta.env
console.log(env)

1.5 テスト起動サービス

を実行しpnpm run dev:dev、サービスが正常に起動できるかテストした後、ブラウザでlocalhost:3000にアクセスしてインターフェースが正常か、環境変数が正常に出力されるかをテストします。

2 foo コンポーネントをテストする

サンプルが正常に実行できたということは、サンプルが正常に初期化されたことを意味するため、以前に開発した foo コンポーネントをテストする必要があります。

2.1 依存関係をインストールする

カスタム コンポーネント ライブラリはelement-plusに依存しているため、最初にexample でelement-plusをインストールする必要があります。

pnpm install element-plus

次に、ローカル コンポーネント ライブラリ@yyg-demo-ui/yyg-demo-uiをインストールします。

pnpm install @yyg-demo-ui/yyg-demo-ui

このとき、例のpackage.jsonの依存関係は以下のとおりです。

"dependencies": {
    
    
  "@yyg-demo-ui/yyg-demo-ui": "workspace:^1.0.0",
  "element-plus": "^2.2.21"
},

2.2 コンポーネントライブラリの導入

main.tsに element-plus とカスタム コンポーネント ライブラリをそれぞれ導入します

...
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import YygDemoUi from '@yyg-demo-ui/yyg-demo-ui'

...

const app = createApp(App)
app.use(ElementPlus)
app.use(YygDemoUi)
app.mount('#app')

2.3 コンポーネントの使用

プロジェクトが作成されると、多くのスタイルがsrc/style.cssに自動的に生成されます。内部のコンテンツをすべて削除して、空のstyle.cssファイルを残すことができます。

最後に、App.vue で foo コンポーネントをテストするだけで済みます。App.vue を次のように変更します。

<template>
  <div class="site">
    <h1>组件库测试站点 yyg-demo-ui</h1>
    <p>测试站点主要用于开发过程中测试组件,即在开发过程中由业务驱动组件开发。</p>
    <yyg-foo :msg="msg"></yyg-foo>
  </div>
</template>
<script setup lang="ts">
import {
      
       ref } from 'vue'

const msg = ref('hello world')
</script>

<style scoped lang="scss">
.site {
      
      
  padding: 20px;
}
</style>

2.4 実行して効果を確認する

pnpm run dev:dev を再度実行して、効果を確認します。

画像-20221114010545252

foo コンポーネントのスタイル、関数、testLog 関数はすべて正常に動作し、サンプルとコンポーネントライブラリの開発環境が完成しました。

3 パッケージのビルド例

build:devbuild:uat、およびbuild:prodコマンドが前のスクリプトに追加され、それぞれ dev、uat、および prod の 3 つの環境に対応します。パッケージ化と構築を説明するために、dev 環境を例に挙げてみましょう。例。

コマンド ラインからサンプルディレクトリを入力し、パッケージ化、ビルド、プレビューを順番に実行します。

  1. pnpm run build:devを実行してパッケージ化します。パッケージ化とビルドが成功すると、プロジェクト全体のルート ディレクトリにdistディレクトリが生成されます(このディレクトリはvite.config.ts のbuild.outDirで構成されます)。
  2. pnpm runreviewを実行してパッケージ化されたファイルをプレビューし、コンソールのポート出力にアクセスすると、実行中の効果は上記の効果と一致します。

この時点で、サンプルの開発と構築は完了し、サンプル内でコンポーネント ライブラリのコンポーネントを使用できるようになります。以下に、コンポーネント ライブラリ ドキュメントの開発と構築について説明します。

この記事を読んでいただきありがとうございます。この記事が少しでも役に立ったり、インスピレーションになった場合は、いいね、フォロー、集めて三回連続で応援してください。プログラマーエレガントブラザーは今後もより有益な情報を皆さんに共有していきます。

おすすめ

転載: blog.csdn.net/youyacoder/article/details/127885900