Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • コマンドライン
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリー
    • 継続的統合
  • 言語サポート
    • Node.js
    • Ruby
      • Bundler の使用
      • Rails のサポート
    • Python
      • Django の使用
      • Python でのバックグランドジョブ
    • Java
      • Maven の使用
      • Java でのデータベース操作
      • Spring Boot の使用
      • Java の高度なトピック
    • PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres Getting Started
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
    • Heroku Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
    • コンプライアンス
  • Heroku Enterprise
    • Private Space
      • インフラストラクチャネットワーキング
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
    • シングルサインオン (SSO)
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Integrating with Salesforce
  • 言語サポート
  • Clojure
  • Clojure および ClojureScript アプリケーションでの Node.js の使用

Clojure および ClojureScript アプリケーションでの Node.js の使用

日本語 — Switch to English

最終更新日 2020年05月27日(水)

Table of Contents

  • 複数の buildpack の使用
  • lein-npm の使用
  • Node.js を使用した ClojureScript アプリの実行

多くの Clojure および ClojureScript アプリケーションには、ビルドプロセス中だけでなく、アプリを実行するためにも Node.js ランタイムが必要です。この記事では、Node.js を、Clojure buildpack を使用するアプリケーションと組み合わせるためのいくつかの異なる方法について説明します。

Clojure や ClojureScript を使用した経験がなく、アプリを最初から作成する場合は、Luminus​ や Chestnut​ などのフレームワークから始めてテンプレートを自動的に生成するようにしてください。これらのフレームワークはどちらも、Heroku に必要な設定を生成します。このガイドは主に、Heroku 上でビルドおよび実行される既存のアプリを設定しようとしている開発者を対象としています。

複数の buildpack の使用

Node.js buildpack は、Heroku の複数の buildpack のサポート​を使用して Clojure buildpack と組み合わせることができます。これは、package.json​ ファイルが含まれており、依存関係を管理するために npm​ を実行する必要があるアプリに有効です。buildpack は、次のコマンドを実行することによって組み合わせることができます。

$ heroku buildpacks:clear
$ heroku buildpacks:add heroku/nodejs
$ heroku buildpacks:add heroku/clojure

続いて、次のコマンドを実行して実行順序を確認します。

$ heroku buildpacks
=== nameless-brushlands-4859 Buildpack
1. heroku/nodejs
2. heroku/clojure

これにより、Heroku は確実に最初に Node.js buildpack を、2 番目に Clojure buildpack を実行するようになります。

Node.js buildpack を実行するには、プロジェクトに package.json​ ファイルが存在することも必要です。このファイルでは、インストールする Node.js のバージョンと、アプリに必要な任意の依存関係を定義できます。プロジェクトのルートに package.json​ ファイルを作成し、その中に次のコードを記述します。

{ "engines": { "node": "4.0.0" } }

また、これを空 (つまり {}​) のままにして、常に最新バージョンを選択することもできます。

その後、次のコマンドを実行して、このファイルを Git リポジトリに追加します。

$ git add package.json
$ git commit -m "Added package.json"

次回のデプロイ時に、Heroku は最初に Node.js buildpack を実行します。これにより、Node.js ランタイムと NPM がインストールされます。次に、NPM によって package.json​ 内のすべての依存関係がインストールされます。

lein-npm の使用

lein-npm​ プラグインは、project.clj​ ファイルで直接 NPM 設定をサポートする一般的な Leiningen プラグインです。lein-npm を使用するアプリには package.json​ ファイルが存在しないため、依存関係の管理を Node.js buildpack に依存することはできません。

Clojure buildpack は lein-npm の使用を検出することができ、このプラグインが見つかると Node.js ランタイムをインストールします。その後、すべての NPM パッケージが確実にインストールされるように、Leiningen buildpack プロセスに deps​ ターゲットを追加します。

lein-npm を使用している場合、追加の設定は必要ありません。ただし、次の環境設定で Node.js のバージョンを設定できます。

$ heroku config:set NODEJS_VERSION=4.2.1

この動作を必要としているが、lein-npm を使用していない場合は、上記で説明した NODEJS_VERSION​ 環境設定を設定することによって、Clojure buildpack で強制的に Node.js をインストールできます。この動作を無効にする必要がある場合は、次の環境設定を設定できます。

$ heroku config:set SKIP_NODEJS_INSTALL=true

lein-npm を使用するサンプル ClojureScript アプリケーション​はここにあります。このタイプのアプリケーションはその後、Jetty などの JVM ベースのサーバーで実行するか、または Node.js 自体で実行できます。

Node.js を使用した ClojureScript アプリの実行

Node.js で ClojureScript アプリを実行するには、まず、上記で説明した 2 つの方法のどちらかを使用して Node.js ランタイムをインストールする必要があります。

次に、アプリケーションの :cljsbuild​ ディレクティブを :nodejs​ ターゲットに対してコンパイルするように設定する必要があります。これが project.clj​ でどのようになるかの例を次に示します。

:cljsbuild {
  :builds [{
    :source-paths ["src/myexample"]
    :compiler {:output-to "target/js/myexample.js"
               :target :nodejs
               :optimizations :simple }}]})

その後、node​ コマンドを使用して JavaScript を実行するように Procfile​ を設定する必要があります。次に例を示します。

web: node target/js/myexample.js

完全な例は、この Node.js で実行されるサンプル ClojureScript アプリケーション​にあります。

関連カテゴリー

  • Clojure
Heroku スターターガイド (Clojure) Clojure を使用したデータベース接続プール

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
Heroku is acompany
  • heroku.com
  • Terms of Service
  • Privacy (日本語)
  • Cookies
  • Cookie Preferences
  • Your Privacy Choices
  • © 2023 Salesforce.com