Приложение Nodejs со стартовым скриптом npm

Я очень новичок в nodejs.

В моей докеризованной среде я хочу обеспечить поддержку динамики приложений для приложений nodejs. Это обязывает каждое приложение требовать следующую строку в качестве первой строки в своем приложении.

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, чтобы заменить имя файла записи в package.json приложения на «appdynamics.js», где appdynamics.js имеет приведенный выше оператор требования, связанный с динамикой приложения. Пример: {scripts { "start" : "node server.js" }} будет заменено на {scripts { "start" : "node appdynamics.js"}}

  2. Затем мне «требуется» «server.js» внутри appdynamics.js.

  3. Вызвать запуск npm.

Меня беспокоит только это:

Если в package.json было что-то вроде скриптов { "start" : "coffee server.coffee" }, мой скрипт заменит его на { "start" : "coffee appdynamics.js" }. а затем мой скрипт вызовет npm start, что приведет к ошибке.

Каков наилучший способ решить эту проблему?

Это дополнительный вопрос к Использовать кофе вместо команды node в производстве< /а>


person user6147402    schedule 26.07.2016    source источник
comment
Почему бы вам не сделать это как часть процесса сборки, который просто вставляет соответствующий код в ваш файл server.js? Вы можете использовать любой механизм шаблонов, замену регулярных выражений и т. д. Grunt, gulp, make, что угодно.   -  person Jared Smith    schedule 27.07.2016
comment
Спасибо, что нашли время ответить. Причина в том, что я работаю в команде PAAS, и только мы знаем значения полей, требуемых динамикой приложений. Кроме того, мы хотим сделать динамику приложения беспрепятственно доступной для приложений nodejs, работающих на нашей платформе. Таким образом, разработчику приложения не нужно беспокоиться о значениях конфигурации динамики приложения.   -  person user6147402    schedule 28.07.2016
comment
Тогда это имеет смысл. Сделать это без проблем, вероятно, будет сложно.   -  person Jared Smith    schedule 28.07.2016


Ответы (1)


  • Напишите оболочку с именем appdynamics.coffee
  • Скомпилируйте эту оболочку в .js
  • Замените server.js на appdynamics.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"
  }
}
person Tomasz Jakub Rup    schedule 28.07.2016