我对nodejs非常陌生。使用npm开始脚本的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图像运行一个脚本来在应用程序的的package.json以“appdynamics.js”,其中appdynamics.js具有与上述appdynamics要求语句来替换项的文件名。 例:
{scripts { "start" : "node server.js" }}
将{scripts { "start" : "node appdynamics.js"}}
然后被替换,我 “需要” 里面appdynamics.js “server.js”。
调用npm start。
我唯一担心的是这样的:
如果的package.json有这样的事情脚本{ "start" : "coffee server.coffee" }
,我的脚本将它替换到。然后我的脚本将调用npm start
,这将会出错。
解决此问题的最佳方法是什么?
这是一个后续问题Use "coffee" instead of "node" command in production
为什么你不这样做的构建过程,简单地注入相关的代码的一部分到你的server.js文件中?你可以使用任何模板引擎,正则表达式替换等。咕噜,吞咽,做,什么。 –
感谢您花时间回复。原因是因为我在PAAS团队中,只知道appdynamics所需字段的值。此外,我们希望使appdynamics可以无缝地用于在我们的平台上运行的nodejs应用程序。这样,应用程序开发人员不必担心appdynamics配置值。 – user6147402
那就是总体意义。这样做无缝可能会很困难。 –