node.js - Bitbucket 管道无法安装 Angular cli?
问题描述
我们有以下 Bitbucket 管道,可在我们的 Bitbucket 分支上运行完整性检查
image: node:9.8.0
pipelines:
default:
- step:
script:
- cat /etc/apt/sources.list
- echo "deb http://ftp.ch.debian.org/debian/ jessie main contrib" > /etc/apt/sources.list
- echo "deb-src http://ftp.ch.debian.org/debian/ jessie main contrib" >> /etc/apt/sources.list
- echo "deb http://security.debian.org/ jessie/updates main contrib" >> /etc/apt/sources.list
- echo "deb-src http://security.debian.org/ jessie/updates main contrib" >> /etc/apt/sources.list
- cat /etc/apt/sources.list
- apt-get update -y && apt-get install -y gconf-service libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxss1 libxtst6 libappindicator1 libnss3 libasound2 libatk1.0-0 libc6 ca-certificates fonts-liberation lsb-release xdg-utils wget
- npm i npm@latest -g
- npm install -g --unsafe-perm @angular/cli@7.3.9
- cd /some_path
- npm install
- ng test --browsers=ChromeHeadlessNoSandbox --watch=false
- ng build --prod=true --configuration=sbox
它失败了
+ npm install -g --unsafe-perm @angular/cli@7.3.9
TypeError: Cannot destructure property `stat` of 'undefined' or 'null'.
at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/@npmcli/node-gyp/lib/index.js:2:29)
at Module._compile (module.js:649:30)
at Object.Module._extensions..js (module.js:660:10)
at Module.load (module.js:561:32)
at tryModuleLoad (module.js:501:12)
at Function.Module._load (module.js:493:3)
at Module.require (module.js:593:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/run-script-pkg.js:4:55)
at Module._compile (module.js:649:30)
/usr/local/lib/node_modules/npm/node_modules/@npmcli/config/lib/index.js:163
throw new Error('call config.load() before reading values')
^
Error: call config.load() before reading values
at Config.get (/usr/local/lib/node_modules/npm/node_modules/@npmcli/config/lib/index.js:163:13)
at process.errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:171:32)
at process.emit (events.js:180:13)
at process._fatalException (bootstrap_node.js:431:27)
据说,这曾经可以工作,那为什么现在坏了?
解决方案
旧版本的 node 不能总是运行最新的 npm。npm 7.x 只保证支持 node >= 10。
删除npm i npm@latest -g
以使用包分发版本npm
或安装支持 node v9.x 的一组 npm 版本。至少固定到主要版本npm i npm@^6
(
推荐阅读
- intellij-idea - intellij 无法解析符号“文件”
- css - Div css过渡在切换时没有折叠
- javascript - 在 Firefox 中执行 Ajax SPARQL 查询
- javascript - 在 Chrome 中“拖动”图像时不会触发 mouseup 事件
- java - Class 对象应该被序列化吗?
- flutter - 如何为我的小部件添加边距?了解 EdgeInsets 的效果
- docker - Go 应用程序在 Docker 中挂起
- select - 带参数的自定义 Select()
- bats-core - 如何使用蝙蝠测试`read -p`
- javascript - 处理“无法获取”错误