【问题标题】:EACCES: permission denied, scandir '/root/.npm/_logs' error after NodeJS UpgradeEACCES:权限被拒绝,NodeJS 升级后 scandir '/root/.npm/_logs' 错误
【发布时间】:2022-01-25 19:39:48
【问题描述】:

我将我的一项 NodeJS 服务从 12 升级到 16,然后我开始在 Travis 构建时遇到此错误。

 glob error [Error: EACCES: permission denied, scandir '/root/.npm/_logs'] {
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/root/.npm/_logs'
}

我的 .travis.yml 文件如下所示:

language: node_js
node_js:
  - 16

services:
  - docker

cache:
  yarn: true
  directories:
    - node_modules

before_install:
  - curl -o- -L https://yarnpkg.com/install.sh | bash -s
  - export PATH="$HOME/.yarn/bin:$PATH"

before_script:
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin

script:
  - docker-compose run persistence-api npm run test:ci
  - npm run dist
.....

有人知道吗?谢谢。

【问题讨论】:

    标签: node.js docker npm travis-ci


    【解决方案1】:

    我专门禁用了带有false 值的缓存,还删除了before_install 部分。添加了install:skip 并更改了脚本。您可以在下面的脚本中看到新命令。在这个主题上花费了数小时后,这些更改对我有用。

    language: node_js
    node_js:
      - 16
    
    services:
      - docker
    
    # disable cache due to problems on cached node_modules which are not fixed by `yarn --frozen-lockfile`
    cache:
      npm: false
      yarn: false
    
    install: skip
    
    before_script:
      - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
    
    script:
      - docker-compose run persistence-api sh -c "yarn install --ignore-optional && yarn pretest && yarn test"
      - npm run dist
      ........
    

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 2021-07-28
      • 1970-01-01
      • 2018-04-20
      • 2021-07-22
      • 2021-10-22
      • 2019-10-28
      • 2018-03-08
      • 2018-03-01
      相关资源
      最近更新 更多