Как выполнить скрипт NodeJs в azure-scm-console, используя команду canvas-data-cli - PullRequest
0 голосов
/ 20 декабря 2018

Я выполняю файл кода из консоли Azure SCM с узлом.Это выдает ошибку: «canvasDataCli не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл».

Я могу успешно выполнить команду синхронизации canvasDataCli непосредственно из консоли в виде:

синхронизация canvasDataCli -c ./config.js

Вот кодфайл test.js

   var Promise = require('promise');

   require('canvas-data-cli');

   var s='./config.js';
   var command=`canvasDataCli sync -c  ${s}`;

   function exec_command_promise(cmd) {
   return new Promise(function (resolve, reject) {

    var exec = require('child_process').exec;
    var child_process = exec(cmd);

    // event : stdout
    child_process.stdout.on('data', data => {
        console.log(data);
    });

    // event : stderr
    child_process.stderr.on('data', data => {
        console.log(data);
        reject(data);
    });

    // event : close
    child_process.on('close', data => {
        console.log(data);
        resolve(data);
    });

   }); 
   };

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я решил свою проблему, установив тот же пакет в глобальной области видимости, например canvas-data-cli по адресу

my-site.scm.azurewebsites.net / debugConsole

npmустановить canvas-data-cli -g

Я думаю, проблема заключалась в том, что команда синхронизации canvasDataCli создала новый процесс, который выполнялся на my-site.scm.azurewebsites.net/, и явыполнить его с

my-site.scm.azurewebsites.net / dev / wwwroot /

0 голосов
/ 21 декабря 2018

Я попытался установить canvasDataCli на свой сайт KUDU, если просто запустить canvasDataCli, он покажет not recognized, как у вас, это потому, что PATH не содержит переменную.

Так что если вы хотитечтобы использовать canvasDataCli, вам нужно установить PATH, вы можете использовать set PATH=D:\local\AppData\npm;%PATH%, а затем проверить, была ли переменная установлена ​​в which canvasDataCli.В случае успеха он покажет /d/local/AppData/npm/canvasDataCli.

Однако это временная переменная, вы также можете установить ее как постоянную переменную с файлом applicationHost.xdt.Вам нужно поставить его под d:\home\site\.

Вот содержание applicationHost.xdt.

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
 <system.webServer> 
  <runtime xdt:Transform="InsertIfMissing">
   <environmentVariables xdt:Transform="InsertIfMissing">
    <add name="PATH" value="D:\local\AppData\npm;%PATH%" xdt:Locator="Match(name)" 
    xdt:Transform="InsertIfMissing" />    
   </environmentVariables>
  </runtime> 
 </system.webServer> 
</configuration>

Но если вы хотите использовать этот способ, вам сначала нужно установить переменную среды, а затем установить canvas-data-кли.Либо он удалит все файлы в D:\local\AppData\npm.

. После этого вы сможете запустить код, однако загружаемый код, похоже, имеет некоторые проблемы.enter image description here

Это из-за отсутствия файлов в моих папках.Возможно, вы добьетесь успеха в своей среде.

Предотвратите ошибку : вам лучше обновить версию своего узла, вы можете перейти к настройкам приложения на портале, добавить параметр WEBSITE_NODE_DEFAULT_VERSION со значением 8.8.1 или другую нужную версию.

Если у вас остались другие вопросы, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...