NPM 安装任务在 Azure Devops 中失败,之前使用相同的代码
NPM install task failing in Azure Devops, same code worked previously
我有 yaml
管道 运行 在 Azure Devops 中构建。 Npm@1
任务今天早上开始失败。 npm install
在本地使用 npm 版本 6.14.5 并且在 npm Status 上都是绿灯。
pool:
name: 'Azure Pipelines'
vmImage: ubuntu-latest
stages:
- stage:
variables:
buildConfiguration: "Release"
buildPlatform: "AnyCPU"
jobs:
- job:
steps:
- task: Npm@1
displayName: 'npm install'
inputs:
workingDir: Azure/MySite/ClientApp
这是日志中开始出错的地方:
1156 verbose pkgid node-sass@4.14.1
1157 verbose cwd /home/vsts/work/1/s/Azure/MySite/ClientApp
1158 verbose Linux 5.11.0-1021-azure
1159 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
1160 verbose node v16.13.0
1161 verbose npm v8.1.0
1162 error code 1
1163 error path /home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-sass
1164 error command failed
1165 error command sh -c node scripts/build.js
1166 error Building: /usr/local/bin/node /home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
1166 error make: Entering directory '/home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-sass/build'
1166 error g++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/home/vsts/.node-gyp/16.13.0/include/node -I/home/vsts/.node-gyp/16.13.0/src -I/home/vsts/.node-gyp/16.13.0/deps/openssl/config -I/home/vsts/.node-gyp/16.13.0/deps/openssl/openssl/include -I/home/vsts/.node-gyp/16.13.0/deps/uv/include -I/home/vsts/.node-gyp/16.13.0/deps/zlib -I/home/vsts/.node-gyp/16.13.0/deps/v8/include -I../src/libsass/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu++14 -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/ast.o ../src/libsass/src/ast.cpp
1166 error g++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/home/vsts/.node-gyp/16.13.0/include/node -I/home/vsts/.node-gyp/16.13.0/src -I/home/vsts/.node-gyp/16.13.0/deps/openssl/config -I/home/vsts/.node-gyp/16.13.0/deps/openssl/openssl/include -I/home/vsts/.node-gyp/16.13.0/deps/uv/include -I/home/vsts/.node-gyp/16.13.0/deps/zlib -I/home/vsts/.node-gyp/16.13.0/deps/v8/include -I../src/libsass/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu++14 -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast_fwd_decl.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/ast_fwd_decl.o ../src/libsass/src/ast_fwd_decl.cpp
1166 error g++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/home/vsts/.node-gyp/16.13.0/include/node -I/home/vsts/.node-gyp/16.13.0/src -I/home/vsts/.node-gyp/16.13.0/deps/openssl/config -I/home/vsts/.node-gyp/16.13.0/deps/openssl/openssl/include -I/home/vsts/.node-gyp/16.13.0/deps/uv/include -I/home/vsts/.node-gyp/16.13.0/deps/zlib -I/home/vsts/.node-gyp/16.13.0/deps/v8/include -I../src/libsass/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu++14 -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/backtrace.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/backtrace.o ../src/libsass/src/backtrace.cpp
1166 error g++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/home/vsts/.node-gyp/16.13.0/include/node -I/home/vsts/.node-gyp/16.13.0/src -I/home/vsts/.node-gyp/16.13.0/deps/openssl/config -I/home/vsts/.node-gyp/16.13.0/deps/openssl/openssl/include -I/home/vsts/.node-gyp/16.13.0/deps/uv/include -I/home/vsts/.node-gyp/16.13.0/deps/zlib -I/home/vsts/.node-gyp/16.13.0/deps/v8/include -I../src/libsass/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu++14 -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/base64vlq.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/base64vlq.o ../src/libsass/src/base64vlq.cpp
几个月来 package.json
没有任何变化。根据错误消息,我已将问题缩小到与 note-sass
有关的问题,所以这里有一个最小的 package.json
来重现错误。
{
"dependencies": {
"node-sass": "^4.14.1"
}
}
我仍然不知道为什么这突然开始失败,但我已经通过将 node-sass
更新到版本 6.0.1
.
解决了这个问题
{
"dependencies": {
"node-sass": "6.0.1"
}
}
宇宙中有两个谜团:1) 它的空间范围和 2) 为什么 NPM 会失败?
10990 error path /home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-sass
10991 error command failed
10992 error command sh -c node scripts/build.js
10993 error Building: /usr/local/bin/node /home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
10993 error make: Entering directory '/home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-sass/build'
从我在你的日志中看到的,这是猜测、可能性和个人经验的问题。您的管道正在编译 node-sass
,我认为这是 nodejs 世界中最邪恶的源头。
您可能没有升级您的依赖项,这 是 node-sass
中的一个问题。 node-sass,其实就是二进制编译成nodejs版本的
Azure DevOps 通常会升级 Node 运行时而不告诉任何人(我昨天发布了一个关于 SonarCloud 集成的问题)。
现在,如果您(或 Azure)升级 Nodejs 运行时,那么您必须找到更新版本的 node-sass 才能使用它也兼容使用您自己的应用程序。
在你的问题中,你确实说明你在本地使用的 npm 版本是什么运行,但不是 nodejs 版本,它在 Azure 上是 16。
作为解决方法,您可以指示 Azure 使用不同的节点版本
- task: NodeTool@0
displayName: Install Node.js
inputs:
versionSpec: 'Your version e.g. 14.x'
我遇到了同样的问题。在我的本地我使用节点版本(12.18.3)
和 node-sass 版本 (4.14.1)。所以在我的本地下面的命令工作正常。
npm start
npm run build
当我将代码部署到 Azure 时,我们使用的是节点版本 (17.1),但 package.json 中的 node-sass 版本 (4.14.1)。但是这里我们需要使用node-sass version(7.x) 而不是(4.x).
Reference Link: https://www.npmjs.com/package/node-sass
所有你需要卸载 node-sass只需运行这个命令来卸载node-sass . npm uninstall node-sass 一旦卸载成功,你只需要安装 sass 而不是 node-sass。只需 运行 这个命令: npm i -D sass 现在,我的问题已经解决了。
我有 yaml
管道 运行 在 Azure Devops 中构建。 Npm@1
任务今天早上开始失败。 npm install
在本地使用 npm 版本 6.14.5 并且在 npm Status 上都是绿灯。
pool:
name: 'Azure Pipelines'
vmImage: ubuntu-latest
stages:
- stage:
variables:
buildConfiguration: "Release"
buildPlatform: "AnyCPU"
jobs:
- job:
steps:
- task: Npm@1
displayName: 'npm install'
inputs:
workingDir: Azure/MySite/ClientApp
这是日志中开始出错的地方:
1156 verbose pkgid node-sass@4.14.1
1157 verbose cwd /home/vsts/work/1/s/Azure/MySite/ClientApp
1158 verbose Linux 5.11.0-1021-azure
1159 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
1160 verbose node v16.13.0
1161 verbose npm v8.1.0
1162 error code 1
1163 error path /home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-sass
1164 error command failed
1165 error command sh -c node scripts/build.js
1166 error Building: /usr/local/bin/node /home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
1166 error make: Entering directory '/home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-sass/build'
1166 error g++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/home/vsts/.node-gyp/16.13.0/include/node -I/home/vsts/.node-gyp/16.13.0/src -I/home/vsts/.node-gyp/16.13.0/deps/openssl/config -I/home/vsts/.node-gyp/16.13.0/deps/openssl/openssl/include -I/home/vsts/.node-gyp/16.13.0/deps/uv/include -I/home/vsts/.node-gyp/16.13.0/deps/zlib -I/home/vsts/.node-gyp/16.13.0/deps/v8/include -I../src/libsass/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu++14 -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/ast.o ../src/libsass/src/ast.cpp
1166 error g++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/home/vsts/.node-gyp/16.13.0/include/node -I/home/vsts/.node-gyp/16.13.0/src -I/home/vsts/.node-gyp/16.13.0/deps/openssl/config -I/home/vsts/.node-gyp/16.13.0/deps/openssl/openssl/include -I/home/vsts/.node-gyp/16.13.0/deps/uv/include -I/home/vsts/.node-gyp/16.13.0/deps/zlib -I/home/vsts/.node-gyp/16.13.0/deps/v8/include -I../src/libsass/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu++14 -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast_fwd_decl.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/ast_fwd_decl.o ../src/libsass/src/ast_fwd_decl.cpp
1166 error g++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/home/vsts/.node-gyp/16.13.0/include/node -I/home/vsts/.node-gyp/16.13.0/src -I/home/vsts/.node-gyp/16.13.0/deps/openssl/config -I/home/vsts/.node-gyp/16.13.0/deps/openssl/openssl/include -I/home/vsts/.node-gyp/16.13.0/deps/uv/include -I/home/vsts/.node-gyp/16.13.0/deps/zlib -I/home/vsts/.node-gyp/16.13.0/deps/v8/include -I../src/libsass/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu++14 -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/backtrace.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/backtrace.o ../src/libsass/src/backtrace.cpp
1166 error g++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/home/vsts/.node-gyp/16.13.0/include/node -I/home/vsts/.node-gyp/16.13.0/src -I/home/vsts/.node-gyp/16.13.0/deps/openssl/config -I/home/vsts/.node-gyp/16.13.0/deps/openssl/openssl/include -I/home/vsts/.node-gyp/16.13.0/deps/uv/include -I/home/vsts/.node-gyp/16.13.0/deps/zlib -I/home/vsts/.node-gyp/16.13.0/deps/v8/include -I../src/libsass/include -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -fno-omit-frame-pointer -std=gnu++14 -std=c++0x -fexceptions -frtti -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/base64vlq.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/base64vlq.o ../src/libsass/src/base64vlq.cpp
几个月来 package.json
没有任何变化。根据错误消息,我已将问题缩小到与 note-sass
有关的问题,所以这里有一个最小的 package.json
来重现错误。
{
"dependencies": {
"node-sass": "^4.14.1"
}
}
我仍然不知道为什么这突然开始失败,但我已经通过将 node-sass
更新到版本 6.0.1
.
{
"dependencies": {
"node-sass": "6.0.1"
}
}
宇宙中有两个谜团:1) 它的空间范围和 2) 为什么 NPM 会失败?
10990 error path /home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-sass
10991 error command failed
10992 error command sh -c node scripts/build.js
10993 error Building: /usr/local/bin/node /home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
10993 error make: Entering directory '/home/vsts/work/1/s/Azure/MySite/ClientApp/node_modules/node-sass/build'
从我在你的日志中看到的,这是猜测、可能性和个人经验的问题。您的管道正在编译 node-sass
,我认为这是 nodejs 世界中最邪恶的源头。
您可能没有升级您的依赖项,这 是 node-sass
中的一个问题。 node-sass,其实就是二进制编译成nodejs版本的
Azure DevOps 通常会升级 Node 运行时而不告诉任何人(我昨天发布了一个关于 SonarCloud 集成的问题)。
现在,如果您(或 Azure)升级 Nodejs 运行时,那么您必须找到更新版本的 node-sass 才能使用它也兼容使用您自己的应用程序。
在你的问题中,你确实说明你在本地使用的 npm 版本是什么运行,但不是 nodejs 版本,它在 Azure 上是 16。
作为解决方法,您可以指示 Azure 使用不同的节点版本
- task: NodeTool@0
displayName: Install Node.js
inputs:
versionSpec: 'Your version e.g. 14.x'
我遇到了同样的问题。在我的本地我使用节点版本(12.18.3) 和 node-sass 版本 (4.14.1)。所以在我的本地下面的命令工作正常。
npm start
npm run build
当我将代码部署到 Azure 时,我们使用的是节点版本 (17.1),但 package.json 中的 node-sass 版本 (4.14.1)。但是这里我们需要使用node-sass version(7.x) 而不是(4.x).
Reference Link: https://www.npmjs.com/package/node-sass
所有你需要卸载 node-sass只需运行这个命令来卸载node-sass . npm uninstall node-sass 一旦卸载成功,你只需要安装 sass 而不是 node-sass。只需 运行 这个命令: npm i -D sass 现在,我的问题已经解决了。