npm задача не создает папку node_modules в Azure конвейере - PullRequest
2 голосов
/ 23 января 2020

Это не проект узла, а веб-приложение MVC. Цель состоит в том, чтобы связать библиотеку Quill. js с помощью шагов npm в конвейере Azure.

Проблема: папка node_modules с необходимым кодом и зависимостями не генерируется в конвейере.

* Пакет 1004 *. json настроен таким образом, что при локальном развертывании решения в каталоге fre sh только с установкой npm воссоздается папка node_modules со всеми необходимыми файлами и зависимостями, чтобы все работало прекрасно.

Однако возникают проблемы с дублированием этого процесса через Azure Конвейерные задачи. Папка node_modules с нужными вкусностями не создается. Проделали некоторые эксперименты, но вот последовательность, которая имеет для меня наибольшее значение:

Использовать NuGet NuGet Restore
VsTest - testAssemblies
Использовать узел 8.x
npm установить (задача настроен на запуск в той же папке проекта, в которой находится пакет. json живет)
Решение для сборки
Несколько других задач ...

пакет. json выглядит следующим образом ...

{
  ...
     ,
  "dependencies": {
    "quill": "^1.3.7"
  }
}

Но node_modules не создаются, как это происходит в локальной сети.

Спасибо за любые предложения.

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Нашел решение. Неправильно определили проблему. Оказалось, что папка node_modules на самом деле загружалась npm на сборочном компьютере, но решение по сборке не подбирало папку или ее содержимое для включения в артефакт.

Ответ найден на это сообщение в блоге:

https://blogs.perficient.com/2016/08/11/how-to-add-gulp-output-or-bowernpm-packages-to-webdeploy-package/

Решением было вручную отредактировать файл проекта, добавив пользовательскую цель сборки, добавив приведенное ниже в файл csproj для проекта. содержащий пакет. json.

  <Target Name="AddNpmOutput">
    <ItemGroup>
      <_CustomFiles Include="node_modules\**\*" />
      <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
        <DestinationRelativePath>node_modules\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
      </FilesForPackagingFromProject>
    </ItemGroup>
  </Target>
  <PropertyGroup>
    <CopyAllFilesToSingleFolderForPackageDependsOn>
      AddNpmOutput;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForPackageDependsOn>
    <CopyAllFilesToSingleFolderForMsdeployDependsOn>
      AddNpmOutput;
      $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForMsdeployDependsOn>
  </PropertyGroup>
0 голосов
/ 24 января 2020

У меня есть простой пакет. json, и я настроил свою задачу npm, как показано на экране ниже.

{
  "name": "service--whoami-sample-app",
  "version": "1.0.0",
  "description": "Azure Functions sample for the Serverless framework",
  "scripts": {
    "test": "echo \"No tests yet...\"",
    "start": "func host start"
  },
  "keywords": [
    "azure",
    "serverless"
  ],
  "dependencies": { "quill": "^1.3.7"}
}

enter image description here

Я запускаю трубопровод против моего собственного агента. На скриншоте видно, что перо установлено.

enter image description here

...