我正在尝试在Azure DevOps中构建Azure管道。问题是,当管道运行时,npm构建任务中发生错误。可能是因为包装中有一些过时的包装。json?或者是npm已经过时了?
请参见管道开始运行的教程中的步骤4:https://docs.microsoft.com/en-us/learn/modules/create-a-build-pipeline/6-create-the-pipeline
管道中构建任务的屏幕截图:
原始日志:
2021-12-03T00:13:53.4119601Z ##[section]Starting: Run npm install
2021-12-03T00:13:53.4130006Z ==============================================================================
2021-12-03T00:13:53.4130664Z Task : npm
2021-12-03T00:13:53.4144256Z Description : Install and publish npm packages, or run an npm command. Supports npmjs.com and authenticated registries like Azure Artifacts.
2021-12-03T00:13:53.4145177Z Version : 1.187.0
2021-12-03T00:13:53.4145620Z Author : Microsoft Corporation
2021-12-03T00:13:53.4146127Z Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/package/npm
2021-12-03T00:13:53.4146868Z ==============================================================================
2021-12-03T00:13:54.7198556Z [command]/usr/local/bin/npm --version
2021-12-03T00:13:55.4151672Z 8.1.0
2021-12-03T00:13:56.0808980Z [command]/usr/local/bin/npm config list
2021-12-03T00:13:56.3808693Z ; "env" config from environment
2021-12-03T00:13:56.3811792Z
2021-12-03T00:13:56.3813271Z userconfig = "/home/vsts/work/1/npm/13.npmrc"
2021-12-03T00:13:56.3814393Z
2021-12-03T00:13:56.3815603Z ; node bin location = /usr/local/bin/node
2021-12-03T00:13:56.3816682Z ; cwd = /home/vsts/work/1/s
2021-12-03T00:13:56.3817732Z ; HOME = /home/vsts
2021-12-03T00:13:56.3819465Z ; Run `npm config ls -l` to show all defaults.
2021-12-03T00:13:56.3822946Z [command]/usr/local/bin/npm install
2021-12-03T00:16:21.9362133Z npm WARN old lockfile
2021-12-03T00:16:21.9365129Z npm WARN old lockfile The package-lock.json file was created with an old version of npm,
2021-12-03T00:16:21.9369471Z npm WARN old lockfile so supplemental metadata must be fetched from the registry.
2021-12-03T00:16:21.9370832Z npm WARN old lockfile
2021-12-03T00:16:21.9372351Z npm WARN old lockfile This is a one-time fix-up, please be patient...
2021-12-03T00:16:21.9373414Z npm WARN old lockfile
2021-12-03T00:16:21.9375186Z npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
'''
'''
2021-12-03T00:16:22.4541247Z 2732 error | ^
2021-12-03T00:16:22.4542220Z 2732 error /home/vsts/.node-gyp/16.13.0/include/node/node.h:855:3: note: in expansion of macro ‘NODE_MODULE_X’
2021-12-03T00:16:22.4543014Z 2732 error 855 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
2021-12-03T00:16:22.4543629Z 2732 error | ^~~~~~~~~~~~~
2021-12-03T00:16:22.4544459Z 2732 error ../src/binding.cpp:358:1: note: in expansion of macro ‘NODE_MODULE’
2021-12-03T00:16:22.4545125Z 2732 error 358 | NODE_MODULE(binding, RegisterModule);
2021-12-03T00:16:22.4545958Z 2732 error | ^~~~~~~~~~~
2021-12-03T00:16:22.4546611Z 2732 error make: *** [binding.target.mk:133: Release/obj.target/binding/src/binding.o] Error 1
2021-12-03T00:16:22.4547249Z 2732 error gyp ERR! build error
2021-12-03T00:16:22.4547826Z 2732 error gyp ERR! stack Error: `make` failed with exit code: 2
2021-12-03T00:16:22.4548944Z 2732 error gyp ERR! stack at ChildProcess.onExit (/home/vsts/work/1/s/node_modules/node-gyp/lib/build.js:262:23)
2021-12-03T00:16:22.4550047Z 2732 error gyp ERR! stack at ChildProcess.emit (node:events:390:28)
2021-12-03T00:16:22.4550822Z 2732 error gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
2021-12-03T00:16:22.4551766Z 2732 error gyp ERR! System Linux 5.11.0-1021-azure
2021-12-03T00:16:22.4552997Z 2732 error gyp ERR! command "/usr/local/bin/node" "/home/vsts/work/1/s/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
2021-12-03T00:16:22.4554136Z 2732 error gyp ERR! cwd /home/vsts/work/1/s/node_modules/node-sass
2021-12-03T00:16:22.4554904Z 2732 error gyp ERR! node -v v16.13.0
2021-12-03T00:16:22.4555635Z 2732 error gyp ERR! node-gyp -v v3.8.0
2021-12-03T00:16:22.4556152Z 2732 error gyp ERR! not ok
2021-12-03T00:16:22.4556664Z 2732 error Build failed with error code: 1
2021-12-03T00:16:22.4557176Z 2733 verbose exit 1
2021-12-03T00:16:22.4557451Z
2021-12-03T00:16:22.4593929Z ##[error]Error: Npm failed with return code: 1
2021-12-03T00:16:22.4611672Z ##[section]Finishing: Run npm install
此任务中为什么会出现错误?
对于经典管道用户,请在安装npm之前添加任务“Node.js tool installer”。节点。js工具安装程序可以指定节点版本。
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/node-js?view=azure-devops
您只需使用以下操作更新packagelock文件:
>
使用以下命令更新您的npm版本:npm install-gnpm@latest
使用以下命令更新packagelock.json:
npm install
推出全新的packagelock。将json文件发送到azure,然后再次启动CI
=
微软在12月3日左右更新了他们的虚拟机
在此更改中,默认节点版本已从14更改。x到16。x。
我们在节点16上运行时发现了这个问题。
这不是一个长期的解决方案,因为您需要找出构建在节点16上不工作的原因,但短期内,您可以添加一个命令,告诉构建代理使用节点的版本14。
假设您正在使用现代YAML构建管道,请尝试添加以下内容作为YAML管道中的第一步:
- task: NodeTool@0
inputs:
versionSpec: '14.x'
这将解决任何节点16问题。
如果您使用经典管道,可能有一种方法可以包含此步骤,因为它是Microsoft提供的,但我不确定,因为我不使用经典模式。
注意:
如果您运行了npm版本8(节点16附带),它可能已经升级了您的包锁。更新版本2架构的json文件。
此更新的package-lock.json不适用于版本14,您需要将文件恢复到版本1(如果您在源代码控制中没有旧版本,只需删除包锁并运行npm install
即可完成)。
我们有问题运行“NPM安装”在我们的项目。找不到某个文件: 对于我们来说,这个节点--陀螺似乎是一个永无止境的痛苦之源。一开始它抱怨它需要python,所以我们安装了它。然后它抱怨它需要我们安装的VCBuild,(使用.NET2.0SDK),现在我们出现了这个错误。这几乎就像是错误越来越模糊,感觉我们走上了一条错误的道路。 奇怪的是,我们团队中的其他人在运行NPM-Install时没有任何问题。
当我用Angular在我的项目上安装npm时。节点sass/node gyp安装失败,错误显示如下: $npm安装 节点-sass@4.10.0安装C:\Users\d\Documents\project\app\node\u modules\node sass node scripts/install.js 从https://github.com/sass/node-sass/releases/
问题内容: 我没有直接依赖于weak或node-gyp,但是我想我的其他依赖项(express,phantom,ejs,aws- sdk,moment)都需要它。任何人都遇到这样的问题并能够解决? 问题答案: 这是有效的。在安装过程中需要python 2.6。 https://github.com/TooTallNate/node- gyp/issues/363
我正在尝试使用NPM5.6.0在Windows 10上安装模块。当我进入npm安装时,我得到: 似乎节点sass安装错误。环境如下: Python版本:2.7.14 npm版本:5.6.0 节点版本:8.10.0 ruby版本: 2.3.3p222 (2016-11-21修订56859)[i386-mingw32] 系统:win10(x64) node-gyp: 3.6.2 而且我已经安装了Mic
问题内容: 我有一个使用和的NPM项目,都需要node-gyp来安装它们。当我这样做时,出现以下错误: 以前由于未安装Python 2.7而失败,现在是这样。这让我头疼。我该怎么办? 问题答案: 下面的答案代表手动安装,但是有一种简单得多的方法:自动安装。 以管理员身份打开Powershell并运行。 安装需要时间,但对我来说却像一个魅力!
安装bcrypt时,我在windows计算机中遇到此错误,我正在使用 节点v8.9.4 NPM v5.6.0 BCrypt v1.0.3 C:\users\user\desktop\mysql_node_api\register_login\register_login>npm安装bcrypt--保存>bcrypt@1.0.3安装C:\users\user\desktop\mysql_node_a