2

私はnodejsが初めてです。

Docker 化された環境で、nodejs アプリに appdynamics サポートを提供したいと考えています。これにより、すべてのアプリで、アプリの最初の行として次を要求することが義務付けられます。

require("appdynamics").profile({
    controllerHostName: '<controller host name>',
      controllerPort: <controller port number>, 
      controllerSslEnabled: false,  // Set to true if controllerPort is SSL
      accountName: '<AppDynamics_account_name>',
      accountAccessKey: '<AppDynamics_account_key>', //required
      applicationName: 'your_app_name',
      tierName: 'choose_a_tier_name', 
      nodeName: 'choose_a_node_name', 
 });

アプリのエントリ ファイルの周りにappdynamics.jsというラッパーを提供することで、これを行う予定です。詳細:

  1. nodejs docker イメージでスクリプトを実行して、アプリの package.json のエントリ ファイル名を「appdynamics.js」に置き換えます。ここで、appdynamics.js には上記の appdynamics 関連の require ステートメントがあります。例 :{scripts { "start" : "node server.js" }}に置き換えられます {scripts { "start" : "node appdynamics.js"}}

  2. 次に、appdynamics.js 内の「server.js」を「require」します。

  3. npm start を呼び出します。

私の唯一の懸念はこれです:

package.jsonに scripts のようなものがあった場合{ "start" : "coffee server.coffee" }、私のスクリプトはそれを に置き換えます{ "start" : "coffee appdynamics.js" }。そして、私のスクリプトは を呼び出しますがnpm start、エラーになります。

これを解決する最善の方法は何ですか?

これは、本番環境で「ノード」コマンドの代わりに「コーヒー」を使用するためのフォローアップの質問です

4

1 に答える 1

3
  • と呼ばれるラッパーを書くappdynamics.coffee
  • このラッパーをコンパイルして.js
  • server.jsappdynamics.jsで置き換えserver.coffeeますappdynamics.coffee

この操作の後

{
  "scripts": {
    "start": "node server.js"
  }
}

になります

{
  "scripts": {
    "start": "node appdynamics.js"
  }
}

{
  "scripts": {
    "start": "coffee server.coffee"
  }
}

になります

{
  "scripts": {
    "start": "coffee appdynamics.coffee"
  }
}
于 2016-07-28T06:30:52.303 に答える