我最近的提交以某种方式导致 Travis CI 在尝试运行 npm install
时停止工作。我唯一的改变是更正了调用 Javascript 文件的拼写错误(从 fooBar/foo-bar.js
到 foo-bar/foo-bar.js
),所以我不确定提交本身是否是原因。我从 Travis CI 收到的错误如下:
bower EACCES EACCES, mkdir '/public'
Stack trace:
Error: EACCES, mkdir '/public'
at Error (native)
Console trace:
Error
at StandardRenderer.error (/home/travis/build/myWorkplace/mySite/node_modules/bower/lib/renderers/StandardRenderer.js:83:37)
at Logger.<anonymous> (/home/travis/build/myWorkplace/mySite/node_modules/bower/lib/bin/bower.js:110:26)
at Logger.emit (events.js:107:17)
at Logger.emit (/home/travis/build/myWorkplace/mySite/node_modules/bower/lib/node_modules/bower-logger/lib/Logger.js:29:39)
at /home/travis/build/myWorkplace/mySite/node_modules/bower/lib/commands/index.js:48:20
at _rejected (/home/travis/build/myWorkplace/mySite/node_modules/bower/lib/node_modules/q/q.js:844:24)
at /home/travis/build/myWorkplace/mySite/node_modules/bower/lib/node_modules/q/q.js:870:30
at Promise.when (/home/travis/build/myWorkplace/mySite/node_modules/bower/lib/node_modules/q/q.js:1122:31)
at Promise.promise.promiseDispatch (/home/travis/build/myWorkplace/mySite/node_modules/bower/lib/node_modules/q/q.js:788:41)
at /home/travis/build/myWorkplace/mySite/node_modules/bower/lib/node_modules/q/q.js:604:44
System info:
Bower version: 1.7.7
Node version: 0.12.2
OS: Linux 3.13.0-40-generic x64
不幸的是,Travis CI 是由承包商为我们设置的,因此我不知道要提供哪些更多信息,但如果还有什么其他信息有帮助,我会很乐意找到。
编辑:
查看成功运行的日志,它看起来像 mkdir
该行是此版本的新内容...
编辑2:
这是我的.travis.yml
和bower.json
:
.travis.yml
language: node_js
node_js:
- 0.12.2
services:
- mongodb
before_install: npm install -g grunt-cli
install: npm install
before_script: grunt && grunt --target=admin
env:
global:
- NODE_ENV: test
- PORT: 5000
- SSL: "off"
- TOKEN_SECRET: [xxx]
- MONGO_URI: mongodb://localhost:27017/myWorkplace-test
- BUCKET: myWorkplacebucket
- AWS_REGION: us-west-2
- CDN: https://[xxx].cloudfront.net
- POSTMARK_API_KEY: POSTMARK_API_TEST
- MAIL_FROM_NAME: myWorkplace
- MAIL_FROM_EMAIL: user@myWorkplace.com
- AIRBRAKE: [xxx]
- secure: [xxx]
- secure: [xxx]
deploy:
- provider: s3
access_key_id: [xxx]
secret_access_key:
secure: [xxx]
bucket: "myWorkplace-builds"
skip_cleanup: true
region: us-west-2
local_dir: dist
on:
branch: master
- provider: s3
access_key_id: [xxx]
secret_access_key:
secure: [xxx]
bucket: "myWorkplace-builds-dev"
skip_cleanup: true
region: us-west-2
local_dir: dist
on:
branch: dev
- provider: codedeploy
access_key_id: [xxx]
secret_access_key:
secure: [xxx]
revision_type: github
region: us-west-2
application: mySite
deployment_group: devs
on:
branch: dev
- provider: codedeploy
access_key_id: [xxx]
secret_access_key:
secure: [xxx]
revision_type: github
region: us-west-2
application: mySite
deployment_group: production
on:
branch: master
notifications:
slack: myWorkplace:[xxx]
bower.json
{
"name": "myWorkplace",
"version": "0.0.1",
"authors": [
"Foo User <user@myWorkplace.com>"
],
"license": "MIT",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"angular": "1.3.11",
"jquery": "2.1.2",
"angular-route": "1.3.11",
"angular-resource": "1.3.11",
"angular-animate": "1.3.11",
"angular-mocks": "1.3.11",
"less": "2.5.1",
"bootstrap": "3.3.2",
"angular-bootstrap": "0.12.1",
"moment": "2.8.3",
"html5-boilerplate": "4.3.0",
"lodash": "3.1.0",
"angular-bootstrap-show-errors": "2.0.0",
"autofill-event": "1.0.0",
"angular-ui-router": "0.2.11",
"ngInfiniteScroll": "1.0.0",
"angular-file-upload": "1.1.5",
"d3": "3.3.10",
"iso-currency": "~0.2.1",
"angular-moment": "0.8.2",
"angular-filter": "0.5.1",
"angular-busy": "~4.1.2",
"angular-csv-import": "0.0.14",
"angulartics": "0.17.2",
"angular-toggle-switch": "1.0.0",
"ng-idle": "1.0.0",
"iso-4217-currency-codes-angular": "~1.0.1"
},
"resolutions": {
"angular": "1.3.11",
"d3": "3.5.5"
}
}
EDIT3:我重新运行了之前成功的 Travis 构建,但由于相同的错误而失败。这让我认为对模块的某种更新使其不再工作。但我不确定。值得注意的是,也许有一些行写着 graceful-fs version 3 and before will fail on newer node releases. Please update to graceful-fs@^4.0.0 as soon as possible.
但我不知道如何更新它,因为 graceful-fs
不在 package.json
中被提交到存储库...
最佳答案
事实证明,问题的根本原因是软件包已更新且不再在我的环境中工作。我通过将 package.json
中的所有版本锁定为我之前知道的版本来修复此问题。
关于node.js - 为什么 Travis CI 无法在 npm 安装期间创建目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35165556/