5

私は最初の Cloud Foundry プロジェクトに取り組んでいます (...そして最初の Node.js プロジェクト、最初の MongoDB プロジェクト、最初の「express」プロジェクトなど...)

初日にこの質問を見つけ、その回答を github リポジトリの編成の出発点として使用しました。

Node.js プロジェクトのフォルダー構造

チェックインされていないディレクトリがあります。ファイルの指定に基づいて/node_modules自動的に作成されます。よし、よし…そのファイルを作った。npm installpackage.json

(注: の間vmc push、プッシュ先のサーバーによる package.json ファイルの検査はないようです。単に node_modules ディレクトリをコピーしているようで、存在しない場合は何もしません...そのため、クライアントで を実行してnpm installからプッシュします。)

アプリケーションでいくつかの基本的な機能が動作するようになりました。現在、テストの準備とインフラストラクチャの構築を開始したいと考えています。例: すべての JavaScript でリンティングを実行するビルド プロセスが必要です。最新のビルド ツールのように見えるready.jsという継続的インテグレーション ライブラリがあります...

しかし、私のプロジェクトのディレクトリにいて、npm install ready.js. これは、クラウド上での実行が意図されていない場合でも、より多くのものが/node_modulesディレクトリに入り、クラウドにアップロードされることを意味します。同じように、リソースの縮小 (またはその他) を行うビルド プロセスがある場合、ソースをデプロイする必要はありませんvmc push

私はこれがすべて新しいことを知っています...しかし、ターゲットをビルドディレクトリにダンプしてそこからプッシュする規則はありますか? それとも、事実上 github ルートからプッシュし、すべてのビルドとテストも一緒にプッシュするだけですか? どんなヒントでも大歓迎です...使用する方法、回避する方法...

更新: Express と Node.js (および他のいくつかの一般的なモジュール) を使用するためのアプリケーション ボイラープレートを見つけました。これは、サーバー コードの javascript 内で「ビルド プロセス」を実行します...良くも悪くも:

https://github.com/mape/node-express-boilerplate

私もこれを見つけました。「ボイラープレート」という用語と、構造に組み込まれているモジュールの名前を組み合わせることは、探しているものを見つけるための優れた検索戦略のようです。

https://github.com/swbiggart/node-express-requirejs-backbone

4

1 に答える 1

3

npm を指定すると、この記事devDependenciesを参照することができます。

開発/テスト環境のすべての依存関係を の下に追加し、devDependencies本番関連のすべてのモジュールを の下に追加できますdependencies。次に、クラウドにプッシュするスクリプトを追加できます。

vmc pushCloud Foundry やワークフローに詳しくありません。ただし、 dev-environment モジュールをインストールし、テストを実行し、npm キャッシュを消去してから、運用専用モジュールをインストールし、コードとそれらのモジュールのみをクラウドにプッシュする カスタム スクリプトをpackage.jsonscriptsのオブジェクトに追加することができます。

編集

npm リポジトリにプッシュしない場合にこれらを使用できるかどうかはわかりませんが、例としては役に立ちます (推測します...) または、上記のワークフローをシェル スクリプトまたはノード スクリプトで自動化することもできます。

/編集

利用可能なスクリプトのいずれかにフックできます... (詳細については、を参照man npm-scriptsしてください):

   preinstall
          Run BEFORE the package is installed

   install, postinstall
          Run AFTER the package is installed.

   preuninstall, uninstall
          Run BEFORE the package is uninstalled.

   postuninstall
          Run AFTER the package is uninstalled.

   preupdate
          Run BEFORE the package is updated with the update command.

   update, postupdate
          Run AFTER the package is updated with the update command.

   prepublish
          Run BEFORE the package is published.

   publish, postpublish
          Run AFTER the package is published.

   pretest, test, posttest
          Run by the npm test command.

   prestop, stop, poststop
          Run by the npm stop command.

   prestart, start, poststart
          Run by the npm start command.

   prerestart, restart, postrestart
          Run by the npm restart command. Note: npm restart will  run  the
          stop and start scripts if no restart script is provided.

   Additionally,  arbitrary  scrips  can  be  run  by doing npm run-script
   <stage> <pkg>.

ここpublishでは、モジュールを に公開するためのものnpmです。"private": trueコードを誤って npm リポジトリに公開しないように、パッケージを非公開 ( ) に設定する必要があります。

于 2012-04-19T18:22:47.537 に答える