2017-02-13 4 views
3

私はいくつかのCompojure RESTfullエンドポイントを持つかなり標準のRingアプリケーションを持っています。また、Polymer、Bower、Gulpに基づくフロントエンドアプリケーションもあります。だから私は、このアプリケーションを1つのパッケージに配布することはいいと思っていました。これは、最終的に他の依存関係なしにどこでもアップロードできるバックエンドとフロントエンドの両方からなるWARファイルを生成するビルドを持つことを意味します。Leiningenを使用してGulpでフロントエンドを構築

しかし、私はLeiningenを掘り起こし始めました。明らかに、この必要性をサポートするプラグインはありません。だから、自分のようなものを作る前に、どうやってこれをやるの?あるいは私は間違った方法で問題を考えていますか?

P.S.最終的な目標は、AWSにアプリケーションをデプロイすることです。プラグインを使用して既に完了しています。それはかなりスムーズです(WARを作成してプラグインに渡すと、残りの部分が気になります)。

答えて

2

私は類似点を持つプロジェクトを構築しました。私はフロントエンドを構築するためにleiningen/lein-pluginsを使用することを避け、webpackでそれを構築し、clojureをuberjarにコンパイルするようにしました。 webpackのビルド成果物はproject.cljで宣言されたリソースパスに出力され、uberjarにパッケージ化されました。 Webサーバーもuberjarにバンドルされ、そのパスから提供されるように構成されていました。私はluminusをプロジェクトテンプレートとして使用しました。

ここで似たようなことができるようです。 gulpを使用してフロントエンドを構築し、弾力のある豆の殻に展開できる戦争にパッケージ化します。 package.jsonのビルドスクリプトはnpm install && NODE_ENV=production webpack -p && lein uberjarでした。

したがって、フロントエンドを構築するためのleinプラグインは必要ありません。私は他のビルド・ツールにその作業をさせるほうが簡単だとわかりました。

関連する問題