第1部:埋め込みウィジェットの作成
7115 ワード
私の初めてのブログ記事へようこそ!これは、私はあなたが埋め込まれたチャットウィジェットを作成することによってあなたを歩いていくシリーズの第1部になるでしょう、あなたは、販売代理店または何にでも話すことができるサイトでポップアップするそれらのもののうちの1つを知っています.
私は、私たちが多くのウェブサイトをホストして、問題または彼らのサイトの構成で援助を必要とする顧客の支持を提供する私の日々の仕事の一部としてこれをしています.私たちを呼び出したり、Zendeskのチケットを作成する代わりに私は彼らのウェブサイトに埋め込まれることができるチャットウィジェットを使用して私たちに連絡するための方法を作成したい.
それは3つの部分からなるプロジェクトです. ソケットサーバ チャットポータル チャットウィジェット これはまだ少し漠然としているかもしれませんが、詳細については、それぞれの部分を意味する説明しましょう.
これはプロジェクトのバックボーンとなります.これはポータルとウィジェットの両方が話すソケットサーバです.と呼ばれるWeb技術を使用します
誰かがチャットウィジェットを開き、入力を開始すると、チャットはチャットポータル(例えばWhatsAppのような)で表示され、そこからメッセージを送信することができます.
これはAとしてパックされた小さなプロジェクトになります
我々が我々が作るものの考えがある今、それに入ることができます!
私は快適に感じる技術でこれを作りますので、ここでいくつかのツールを使用します. vue ( version 3 ) Quasar ( Vue Framework ) タイプスクリプト ノード.バックエンド用 ソケット.io エディタとしてVSコードを使います.
私は最初にセクションに沿ってコードとしてこれを書き始めました、しかし、私の若干のステップは私の感覚に来て、これを楽しむだろう自分自身に尋ねました?セットアップが基本的にすべてボイラープレートコードとプロジェクト構成であるので、私は確かにそうしません.
しかし、それはとても楽しいです(私はそう考えます)Boilerplateコードのまわりであなたを歩かせて、私がどのようにプロジェクトをセットアップするかについて、あなたに示すために.
このシリーズのコードはホストされますhere .
そのプロジェクトでは、このシリーズのすべての部分のためのブランチを作成します.枝がある
以下はフォルダ構造のスクリーンショットです.
それを壊しましょう🚀
私はここで何かを使います
これは、あなたが走るだけであることを意味します
これをrootにするには
幸せな私(そして、うまくいけばあらゆる開発者)にとって重要な1つのことは、あなたが働くプロジェクトがあなたの人生をより簡単にするということです.
それをするVSコード拡張子がたくさんあります、そして、幸運にも、あなたはあなたが使用するどんな拡張と彼らの構成を含むことができますか
このプロジェクトをロードしたとき、おそらくコードを推奨します.あなたがその時それをしなかったならば、拡大タブとフィルタ
以下のような設定があります. を使用したコードの書式設定 ESLILTを使用したコードのリント これは、あなたが自動的に修正することはできません何か間違ったことをしている場合、ファイルをフォーマットし、VSのコードについて心配する必要はありませんことを意味します.ダブル・ヨイ!🎉
ポータルフォルダ内でクエーサーを使用してスタータープロジェクトを作成しました.クエーサーを知らない人のために.check 出て行け.要するに、すべてを行うことができます!SSR、SPA、PWAなどのためのビルド構成と組み合わせる大規模なコンポーネントライブラリ.
CLIを使用して、BoilerPlateプロジェクトを作成することができます
ここで1つのセットアップ
これは少し研究しなければならなかった.私は、前にこれのような何かをした誰かがいなければならないと思いましたvite community templates 私はすぐに探していたものを見つけた.a webcomponent vite template
私はこのフォルダにこのテンプレートを加えて
私が設定した最後のものは
迅速な先端として⚡, また、
それはこの部分のためです!たぶん、私たちは、いくつかの実際のコーディングをまだ取得しなかったので、少し失望しているが、次の部分のために調整されている場合は確かにケースになります.
また、フィードバックと反応が大歓迎です!これが私の最初のポストとして、私は何を改善できるかを知りたい😇
また会いましょう!
一般的な考え、我々は何を作りますか?
私は、私たちが多くのウェブサイトをホストして、問題または彼らのサイトの構成で援助を必要とする顧客の支持を提供する私の日々の仕事の一部としてこれをしています.私たちを呼び出したり、Zendeskのチケットを作成する代わりに私は彼らのウェブサイトに埋め込まれることができるチャットウィジェットを使用して私たちに連絡するための方法を作成したい.
それは3つの部分からなるプロジェクトです.
ソケットサーバ
これはプロジェクトのバックボーンとなります.これはポータルとウィジェットの両方が話すソケットサーバです.と呼ばれるWeb技術を使用します
WebSockets
. これを使用して、クライアントとウィジェット間でメッセージを送ることができます.チャットポータル
誰かがチャットウィジェットを開き、入力を開始すると、チャットはチャットポータル(例えばWhatsAppのような)で表示され、そこからメッセージを送信することができます.
チャットウィジェット
これはAとしてパックされた小さなプロジェクトになります
WebComponent
を追加するだけですべてのウェブサイトに挿入することができますscript
タグとカスタムHTML要素.Webコンポーネントの詳細についてはhere 我々が我々が作るものの考えがある今、それに入ることができます!
ツールと技術の迅速な要約
私は快適に感じる技術でこれを作りますので、ここでいくつかのツールを使用します.
プロジェクトの設定
私は最初にセクションに沿ってコードとしてこれを書き始めました、しかし、私の若干のステップは私の感覚に来て、これを楽しむだろう自分自身に尋ねました?セットアップが基本的にすべてボイラープレートコードとプロジェクト構成であるので、私は確かにそうしません.
しかし、それはとても楽しいです(私はそう考えます)Boilerplateコードのまわりであなたを歩かせて、私がどのようにプロジェクトをセットアップするかについて、あなたに示すために.
コードを得る
このシリーズのコードはホストされますhere .
そのプロジェクトでは、このシリーズのすべての部分のためのブランチを作成します.枝がある
part-1
この部分の最終結果が含まれます.それは何ですか。
以下はフォルダ構造のスクリーンショットです.
それを壊しましょう🚀
糸のワークスペース
私はここで何かを使います
workspaces
. ワークスペースを使用してmonorepo
, 複数のプロジェクトをホストするリポジトリ.我々の3つの部分が基本的に3つの異なるプロジェクトであるので、私はそれがこれをためす良い時間であると決めました.フォルダportal
, server
and widget
すべての独自のプロジェクトが含まれています.tsconfig.json
) と自身のパッケージ.JSONしかし、依存関係はルートレベルにインストールされます.これは、あなたが走るだけであることを意味します
yarn
ルートレベルで一度、すべてのプロジェクトの依存関係をインストールするには、ニース!🎉これをrootにするには
package.json
これらの行を含む: "workspaces": [
"./portal",
"./server",
"./widget"
],
をサポートします.tsconfig.json
これらの行を含む:"references": [
{ "path": "./portal" },
{ "path": "./widget" },
{ "path": "./server" }
]
これは、すべてのプロジェクトが自分自身を持つことができることを意味しますtsconfig.json
したがって、それ自身の設定です.🙂エディタ設定
幸せな私(そして、うまくいけばあらゆる開発者)にとって重要な1つのことは、あなたが働くプロジェクトがあなたの人生をより簡単にするということです.
それをするVSコード拡張子がたくさんあります、そして、幸運にも、あなたはあなたが使用するどんな拡張と彼らの構成を含むことができますか
.vscode
すべてのコードベースのフォルダ.このプロジェクトをロードしたとき、おそらくコードを推奨します.あなたがその時それをしなかったならば、拡大タブとフィルタ
@recommended
どこで手動でそれを行うことができます.以下のような設定があります.
ポータルフォルダ内
ポータルフォルダ内でクエーサーを使用してスタータープロジェクトを作成しました.クエーサーを知らない人のために.check 出て行け.要するに、すべてを行うことができます!SSR、SPA、PWAなどのためのビルド構成と組み合わせる大規模なコンポーネントライブラリ.
CLIを使用して、BoilerPlateプロジェクトを作成することができます
yarn create quasar
これは、作成するプロジェクトの種類についていくつかの質問をするでしょう.興味を持っている人には、ここに私が入ったものがあります.√ What would you like to build? » App with Quasar CLI, let's go!
√ Project folder: ... portal
√ Pick Quasar version: » Quasar v2 (Vue 3 | latest and greatest)
√ Pick script type: » Typescript
√ Pick Quasar App CLI variant: » Quasar App CLI with Vite (BETA stage)
√ Package name: ... portal
√ Project product name: (must start with letter if building mobile apps) ... Chat portal
√ Project description: ... A Quasar Project
√ Author: ... _______________
√ Pick a Vue component style: » Composition API
√ Pick your CSS preprocessor: » Sass with SCSS syntax
√ Check the features needed for your project: » ESLint, State Management (Pinia)
√ Pick an ESLint preset: » Prettier
私はいくつかのeslintといくつかの設定をこのboilerplateからルートレベルに移動し、いくつかのtsconfig.json
変更以外のコードはそのままです.サーバーフォルダ内
ここで1つのセットアップ
index.ts
ファイルは、最も基本的なExpressのアプリケーションでは、それだけではなく、実行されていることを指示します.しかし、それはこの部分のポイントではありません:)ウィジェットフォルダ内
これは少し研究しなければならなかった.私は、前にこれのような何かをした誰かがいなければならないと思いましたvite community templates 私はすぐに探していたものを見つけた.a webcomponent vite template
私はこのフォルダにこのテンプレートを加えて
tsconfig.json
and vite.config.ts
それは私のユースケース、汗なしで動作するように!😄ランニングとビル
私が設定した最後のものは
scripts
根のセクションpackage.json
これは異なる部分を構築して実行します.別々に、または、すぐに、あなたの好みは何でも.見てください、私はそれが全く自明であると思います.迅速な先端として⚡, また、
npm scripts
エクスプローラのタブ内のセクションをすばやくスクリプトを実行します.こちらラッピング
それはこの部分のためです!たぶん、私たちは、いくつかの実際のコーディングをまだ取得しなかったので、少し失望しているが、次の部分のために調整されている場合は確かにケースになります.
また、フィードバックと反応が大歓迎です!これが私の最初のポストとして、私は何を改善できるかを知りたい😇
また会いましょう!
Reference
この問題について(第1部:埋め込みウィジェットの作成), 我々は、より多くの情報をここで見つけました https://dev.to/evertvdw/part-1-creating-a-embeddable-chat-widget-25h7テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol