这不是一个节点项目,而是一个 MVC Web 应用程序。目标是通过 Azure 管道中的 npm 步骤捆绑 Quill.js 库。
问题:管道中未生成包含所需代码和依赖项的 node_modules 文件夹。
package.json 的配置使得仅使用“npm install”在新位置本地部署解决方案将重新创建包含所有所需文件和依赖项的 node_modules 文件夹,以便一切正常运行。
但是,通过 Azure Pipeline 任务复制此过程时遇到问题。未创建包含所需内容的 node_modules 文件夹。已经做了一些实验,但以下是对我来说最有意义的顺序:
使用 NuGet NuGet Restore
VsTest – 测试组件
使用节点 8.x
npm install(任务设置为在 package.json 所在的同一项目文件夹中运行)
构建解决方案
其他几个任务...
package.json 看起来像这样...
{
...
,
"dependencies": {
"quill": "^1.3.7"
}
}
但是node_modules并没有像在本地那样被创建。
感谢您的任何建议。
最佳答案
找到了解决方案。错误地识别了问题。事实证明,node_modules 文件夹实际上是由构建机器上的 npm 加载的,但构建解决方案并未选取要包含在工件中的文件夹或其内容。
在此博客文章中找到的答案:
解决方案是手动编辑项目文件以添加自定义构建目标,将以下内容添加到包含 package.json 的项目的 csproj 文件中。
<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>
关于azure - npm 任务未在 Azure 管道中创建 node_modules 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59868812/