npm 任务未在 Azure 管道中创建 node_modules 文件夹
npm task not creating node_modules folder in Azure pipeline
这不是节点项目,而是 MVC Web 应用程序。 Objective 是通过 Azure 管道中的 npm 步骤捆绑一个 Quill.js 库。
问题:node_modules 包含所需代码和依赖项的文件夹未在管道中生成。
package.json 的配置使得在只有 "npm install" 的新位置本地部署解决方案将重新创建 node_modules 文件夹,其中包含所有需要的文件和依赖项,以便一切正常工作.
但是,在通过 Azure Pipeline 任务复制此过程时遇到问题。 node_modules 没有创建包含所需内容的文件夹。已经做了一些实验,但这是对我来说最有意义的顺序:
使用 NuGet NuGet 还原
VsTest – 测试程序集
使用节点 8.x
npm install(任务设置为 运行 在 package.json 所在的同一项目文件夹中)
构建解决方案
其他几个任务…
package.json 看起来像这样...
{
...
,
"dependencies": {
"quill": "^1.3.7"
}
}
但是 node_modules 没有像在本地那样创建。
感谢您的任何建议。
我有一个简单的 package.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"}
}
我 运行 针对我的自托管代理的管道。从屏幕截图中您可以看到已安装 quill。
找到解决方案。错误地识别了问题。事实证明,node_modules 文件夹实际上是由构建机器上的 npm 加载的,但构建解决方案并未选取要包含在工件中的文件夹或其内容。
在此博客上找到答案post:
解决方案是手动编辑项目文件以添加自定义构建目标,将以下内容添加到包含 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>
这不是节点项目,而是 MVC Web 应用程序。 Objective 是通过 Azure 管道中的 npm 步骤捆绑一个 Quill.js 库。
问题:node_modules 包含所需代码和依赖项的文件夹未在管道中生成。
package.json 的配置使得在只有 "npm install" 的新位置本地部署解决方案将重新创建 node_modules 文件夹,其中包含所有需要的文件和依赖项,以便一切正常工作.
但是,在通过 Azure Pipeline 任务复制此过程时遇到问题。 node_modules 没有创建包含所需内容的文件夹。已经做了一些实验,但这是对我来说最有意义的顺序:
使用 NuGet NuGet 还原
VsTest – 测试程序集
使用节点 8.x
npm install(任务设置为 运行 在 package.json 所在的同一项目文件夹中)
构建解决方案
其他几个任务…
package.json 看起来像这样...
{
...
,
"dependencies": {
"quill": "^1.3.7"
}
}
但是 node_modules 没有像在本地那样创建。
感谢您的任何建议。
我有一个简单的 package.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"}
}
我 运行 针对我的自托管代理的管道。从屏幕截图中您可以看到已安装 quill。
找到解决方案。错误地识别了问题。事实证明,node_modules 文件夹实际上是由构建机器上的 npm 加载的,但构建解决方案并未选取要包含在工件中的文件夹或其内容。
在此博客上找到答案post:
解决方案是手动编辑项目文件以添加自定义构建目标,将以下内容添加到包含 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>