我对nodejs很陌生。
在我的 dockerized 环境中,我想为 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的包装器来做到这一点。细节:
我在我的 nodejs docker 映像中运行一个脚本,将应用程序的 package.json 中的条目文件名替换为“appdynamics.js”,其中 appdynamics.js 具有上述与 appdynamics 相关的 require 语句。例如:
{scripts { "start" : "node server.js" }}
将替换为{scripts { "start" : "node appdynamics.js"}}
然后,我“需要”appdynamics.js 中的“server.js”。
调用 npm start。
我唯一担心的是:
如果package.json有类似 scripts{ "start" : "coffee server.coffee" }
的内容,我的脚本会将其替换为{ "start" : "coffee appdynamics.js" }
. 然后我的脚本将调用npm start
,这将出错。
解决这个问题的最佳方法是什么?