Node.js 为什么可以';t Travis CI是否在npm安装期间创建目录?

Node.js 为什么可以';t Travis CI是否在npm安装期间创建目录?,node.js,npm,travis-ci,Node.js,Npm,Travis Ci,我最近的一次提交导致Travis CI在尝试运行npm install时停止工作。我唯一的改变是修改了调用Javascript文件的输入错误(从fooBar/fooBar.js到fooBar/fooBar.js),因此我不确定提交本身是否是原因。我从Travis CI收到的错误如下: bower EACCES EACCES, mkdir '/public' Stack trace: Error: EAC

我最近的一次提交导致Travis CI在尝试运行
npm install
时停止工作。我唯一的改变是修改了调用Javascript文件的输入错误(从
fooBar/fooBar.js
fooBar/fooBar.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
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"
  }
}
{
“名称”:“我的工作场所”,
“版本”:“0.0.1”,
“作者”:[
“Foo用户”
],
“许可证”:“麻省理工学院”,
“私人”:没错,
“忽略”:[
"**/.*",
“节点_模块”,
“bower_组件”,
“测试”,
“测试”
],
“依赖项”:{
“角度”:“1.3.11”,
“jquery”:“2.1.2”,
“角度路线”:“1.3.11”,
“角度资源”:“1.3.11”,
“角度动画”:“1.3.11”,
“角度模拟”:“1.3.11”,
“减”:“2.5.1”,
“引导”:“3.3.2”,
“角度引导”:“0.12.1”,
“时刻”:“2.8.3”,
“html5样板文件”:“4.3.0”,
“lodash”:“3.1.0”,
“角度引导显示错误”:“2.0.0”,
“自动填充事件”:“1.0.0”,
“角度用户界面路由器”:“0.2.11”,
“ngInfiniteScroll”:“1.0.0”,
“角度文件上传”:“1.1.5”,
“d3”:“3.3.10”,
“iso货币”:“~0.2.1”,
“角力矩”:“0.8.2”,
“角度过滤器”:“0.5.1”,
“角度繁忙”:“~4.1.2”,
“角度csv导入”:“0.0.14”,
“角度学”:“0.17.2”,
“角度切换开关”:“1.0.0”,
“ng空闲”:“1.0.0”,
“iso-4217-货币-代码-角度”:“~1.0.1”
},
“决议”:{
“角度”:“1.3.11”,
“d3”:“3.5.5”
}
}

EDIT3:我重新运行了以前成功的Travis构建,但它失败了,并出现了相同的错误。这让我想到,某个模块的某种更新使它不再工作。不过我不确定。也许值得注意的是,有几行代码说
优雅的fs版本3及之前的版本将在较新的节点版本上失败。请尽快更新到优雅的fs@^4.0.0。
我不知道如何更新它,因为
优雅的fs
不在
包中。提交到存储库的json

发现问题的根本原因是一个已更新的包,在我的环境中不再工作。我通过将我的
包中的所有版本锁定到我知道以前工作过的版本来修复它。

它是否在容器的根目录下创建了
/public
,您可能没有权限?这就是它的外观。但是为什么特拉维斯不能写它的根呢?我知道,那许可怎么会丢失呢?或者它现在正试图这样做,但之前没有这样做?尝试相对路径:
mkdir public
而不是
mkdir/public
(删除配置中产生该副作用的前导斜杠)查看日志以获得成功运行,看起来,
mkdir
确实是这个版本的新版本…@topheman我该如何更改它?My
.travis.yml
没有对
mkdir
/public
的任何引用。
{
  "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"
  }
}