0

素晴らしい node-sqlite3 モジュールを使用するアプリケーションがいくつかあります。その 1 つの欠点は、インストール時にソースから sqlite をビルドすることです。これは、私が展開を行う方法によって悪化します。私はシェフを使用しています。これにより、デプロイごとにクリーンなソース ツリーが得られます。次に、npm install各アプリケーション ルートで実行します。これは、ローカル キャッシュにヒットするだけなので、ほとんどの問題ではありません。しかし、sqlite3 の場合、モジュールが参照される場所ごとにまったく新しいコピーを作成します。私の場合は4回!ステージング環境で新しい変更をテストする場合は特に、数秒かかることが数分で済みます。

原則として、特定のバージョンのモジュールに対してビルドを 1 回実行し、それをキャッシュして、デプロイ時にバイナリをコピーまたはリンクするだけでよいはずです。誰かが似たようなことをしましたか?ここに悪魔が潜んでいますか?

4

1 に答える 1

1

ここでは、Chef で Node.js を使用して同様のセットアップを行い、sqlite3 をグローバルにインストールすることを選択しました。Node.js スタイル ガイドでは、これを行うことは推奨されていませんが、デプロイのたびに数分間 sqlite3 を再コンパイルすることをお勧めします。

シェフまたはpackage.jsonには、次のようなものがあります

(sudo) npm install -g sqlite3@2.1.x

グローバル NODE_PATH を init スクリプトに追加していることを確認してください。

node NODE_PATH=/usr/local/lib/node_modules app.js
于 2012-09-17T05:47:40.020 に答える