📝
【Mattermost】Windows10でPluginを開発する
前提
- 下記の記事の内容が完了しているとします。
- 関連リポジトリ:テンプレート
- 上記リポジトリ内のREADME.mdの内容だけではmakeできないので、本記事は自己流になります。
手順
事前準備(Git関連)
- Gitをインストールする。
sudo su
apt install -y git
git --version
#git --version git version 2.25.1
- 関連リポジトリをクローンする。
sudo su
cd ~
git clone -b master https://github.com/mattermost/mattermost-plugin-starter-template.git
事前準備(設定関連)
- リポジトリ内に移動する。
sudo su
cd ~/mattermost-plugin-starter-template/
pwd
root@XXXXX:~/mattermost-plugin-starter-template# pwd /root/mattermost-plugin-starter-template
plugin.json
を変更する。
vi plugin.json
plugin.json{ - "id": "com.example.my-plugin", + "id": "com.mattermost.plugin-starter-template", - "name": "My Plugin", + "name": "Plugin Starter Template", - "description": "A plugin to enhance Mattermost." + "description": "This plugin serves as a starting point for writing a Mattermost plugin." }
go.mod
を変更する。
vi go.mod
go.mod-module github.com/example/my-plugin +module github.com/mattermost/mattermost-plugin-starter-template go 1.16 require (
.golangci.yml
を変更する。
vi .golangci.yml
.golangci.ymllinters-settings: gofmt: simplify: true goimports: - local-prefixes: github.com/example/my-plugin + local-prefixes: github.com/mattermost/mattermost-starter-template
Plugin開発
- Server関連は、
server
ディレクトリ内での開発をする。(Go言語) - Webapp関連は、
webapp
ディレクトリ内での開発をする。(React.js)
ビルド
- NPMではなく、Yarnを利用するために以下のコマンドを実行する。
sed -i".org" -e "s/npm/yarn/g" Makefile
sed -i".org" -e "s/NPM/YARN/g" Makefile
diff Makefile Makefile.org
sed -i".org" -e "s/NPM/YARN/g" build/setup.mk
sed -i".org" -e "s/npm/yarn/g" build/setup.mk
diff build/setup.mk build/setup.mk.org
- 動作確認としてデプロイする。
make deploy
root@XXXXX:/home/ubuntu/mattermost-plugin-starter-template-master# make deploy mkdir -p server/dist; cd server && env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 /usr/local/go/bin/go build -trimpath -o dist/plugin-linux-amd64; cd server && env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 /usr/local/go/bin/go build -trimpath -o dist/plugin-linux-arm64; cd server && env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 /usr/local/go/bin/go build -trimpath -o dist/plugin-darwin-amd64; cd server && env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 /usr/local/go/bin/go build -trimpath -o dist/plugin-darwin-arm64; cd server && env CGO_ENABLED=0 GOOS=windows GOARCH=amd64 /usr/local/go/bin/go build -trimpath -o dist/plugin-windows-amd64.exe; cd webapp && /usr/bin/yarn run build; yarn run v1.22.19 $ webpack --mode=production asset main.js 24.8 KiB [compared for emit] [minimized] (name: main) orphan modules 992 bytes [orphan] 2 modules runtime modules 221 bytes 1 module modules by path ./node_modules/core-js/internals/*.js 58 KiB ./node_modules/core-js/internals/export.js 2.61 KiB [built] [code generated] ./node_modules/core-js/internals/global.js 592 bytes [built] [code generated] ./node_modules/core-js/internals/function-call.js 206 bytes [built] [code generated] ./node_modules/core-js/internals/is-object.js 154 bytes [built] [code generated] + 97 modules modules by path ./node_modules/core-js/modules/*.js 14.8 KiB ./node_modules/core-js/modules/es.promise.js 332 bytes [built] [code generated] ./node_modules/core-js/modules/es.promise.constructor.js 9.54 KiB [built] [code generated] ./node_modules/core-js/modules/es.promise.all.js 1.39 KiB [built] [code generated] ./node_modules/core-js/modules/es.promise.catch.js 1.14 KiB [built] [code generated] + 3 modules ./src/index.tsx + 2 modules 1.34 KiB [built] [code generated] webpack 5.75.0 compiled successfully in 2328 ms Done in 3.22s. rm -rf dist/ mkdir -p dist/com.mattermost.plugin-starter-template cp plugin.json dist/com.mattermost.plugin-starter-template/ cp -r assets dist/com.mattermost.plugin-starter-template/ cp -r public dist/com.mattermost.plugin-starter-template/ mkdir -p dist/com.mattermost.plugin-starter-template/server cp -r server/dist dist/com.mattermost.plugin-starter-template/server/ mkdir -p dist/com.mattermost.plugin-starter-template/webapp cp -r webapp/dist dist/com.mattermost.plugin-starter-template/webapp/ cd dist && tar -cvzf com.mattermost.plugin-starter-template-0.1.0.tar.gz com.mattermost.plugin-starter-template com.mattermost.plugin-starter-template/ com.mattermost.plugin-starter-template/server/ com.mattermost.plugin-starter-template/server/dist/ com.mattermost.plugin-starter-template/server/dist/plugin-windows-amd64.exe com.mattermost.plugin-starter-template/server/dist/plugin-darwin-amd64 com.mattermost.plugin-starter-template/server/dist/plugin-darwin-arm64 com.mattermost.plugin-starter-template/server/dist/plugin-linux-amd64 com.mattermost.plugin-starter-template/server/dist/plugin-linux-arm64 com.mattermost.plugin-starter-template/webapp/ com.mattermost.plugin-starter-template/webapp/dist/ com.mattermost.plugin-starter-template/webapp/dist/main.js com.mattermost.plugin-starter-template/assets/ com.mattermost.plugin-starter-template/assets/.gitkeep com.mattermost.plugin-starter-template/assets/starter-template-icon.svg com.mattermost.plugin-starter-template/assets/.gitkeep:Zone.Identifier com.mattermost.plugin-starter-template/assets/starter-template-icon.svg:Zone.Identifier com.mattermost.plugin-starter-template/plugin.json com.mattermost.plugin-starter-template/public/ com.mattermost.plugin-starter-template/public/hello.html com.mattermost.plugin-starter-template/public/hello.html:Zone.Identifier plugin built at: dist/com.mattermost.plugin-starter-template-0.1.0.tar.gz ./build/bin/pluginctl deploy com.mattermost.plugin-starter-template dist/com.mattermost.plugin-starter-template-0.1.0.tar.gz 2023/05/18 12:11:17 Authenticating as admin against http://localhost:8065. 2023/05/18 12:11:17 Uploading plugin via API. 2023/05/18 12:11:23 Enabling plugin. root@DESKTOP-XXXXX:/home/ubuntu/mattermost-plugin-starter-template-master#
- プラグインがシステムコンソールで起動中になっているので、動作確認をする。
curl http://localhost:8065/plugins/com.mattermost.plugin-starter-template
- 本番環境のためにtar.gzファイルを作成するため、下記コマンドでを実行する。
make dist
-
dist
ディレクトリにtar.gzファイルがあるので、本番環境ではシステムコンソールからtar.gzファイルをアップロードし、さらに有効にする。
ls -la dist
root@XXXXX:/home/ubuntu/mattermost-plugin-starter-template-master# ls -la dist total 55500 drwxr-xr-x 3 root root 4096 May 18 12:17 . drwxr-xr-x 11 ubuntu ubuntu 4096 May 18 12:17 .. drwxr-xr-x 6 root root 4096 May 18 12:17 com.mattermost.plugin-starter-template -rw-r--r-- 1 root root 56817395 May 18 12:18 com.mattermost.plugin-starter-template-0.1.0.tar.gz
備考
関連記事
Discussion