Posted at

CueというWeb開発をよしなにするオレオレフレームワークを作った話


はじめに

「C++/Vue.jsでWeb開発とかできるようになってきたけど、もうちょい楽になりたいなぁ」と思い、オレオレフレームワークなものを作ってみました


作ったもの

Cueというものを作りました

実装にあたってはC++17から導入されたfilesystemcpp-httplibを使用しています


使い方

Railsなどのようにコマンドライン上でcueコマンドを実行することで動作します

たとえば、新しいプロジェクトを作成する場合は、

cue new hogehoge

と実行することでhogehogeというプロジェクトが作成されます

CRUDのテンプレートを作成したい場合は、

cue scaffold fugafuga

と実行することでfugafugaという名前のディレクトリが作成され、fugafuga以下にCRUDのテンプレートが生成されます

Vueコンポーネントを複数作成する場合には、

cue foo bar bazz 

とすることで fooディレクトリ以下に barbazzが作成されます

ヘルプなどは cue helpで表示されます


やったこと


cpp-httplibとVue.jsのひな型を作成

まず、cpp-httplibVue.jsでのひな型を作成しました

作成に関しては別件で書いていたこの以下の記事たちを参考にしました

IronでのSPAチュートリアル

C++/Vue.js/WebpackでSPAサンプルを作った話


filesystemでのテンプレートコピー

cppreference.comを参考に以下のように実装


main.cpp

#include <filesystem>

#include <string>

namespace fs = std::filesystem;

int main(int argc, char* argv[]) {

std::string argv = argv[1];

fs::path path = argv;

fs::copy("cue", path);

return 0;
}


で、以下のように実行するとコマンドライン引数に渡された名前のディレクトリへと作成されたテンプレートをコピーする

cue hogehoge

ちなみに、cueディレクトリ内にはC++/Vue.jsで作成したテンプレートが詰まっています


作ってみて

今のところは以前より楽ができているのでつくってよかったなと思う


参考

cppreference.com

IronでのSPAチュートリアル

C++/Vue.js/WebpackでSPAサンプルを作った話