Проблема с задачей DevOps Cache, кеширующей node_modules - PullRequest
0 голосов
/ 25 марта 2020

Использование задачи Cache@2 для кэширования node_modules.

 - task: Cache@2
    displayName: "Restore npm cache"
    inputs:
      key: "Npm | package-lock.json | package.json | $(Agent.OS)"
      path: "node_modules"
      cacheHitVar: "NPM_CACHED"

Я кеширую папку node_modules, проверяя, есть ли пакет. json и package-lock. json файлы не имеют изменилось. При попадании в кеш папка node_modules восстанавливается из кеша. После этого я смогу запускать команды lint, test и build без необходимости установки npm (поскольку папка node_modules находится на своем месте).

Но я получаю ошибки. При запуске команды ts c (машинопись) я получаю ошибку «Отказано в доступе». Я исправил это с помощью chmod из папки .bin в node_modules с + x. Теперь я могу запустить команду ts c, но она выдаёт мне эту ошибку:

tsc -p tsconfig.json
    ^

Error: Cannot find module '../lib/tsc.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)

Мне удалось отследить это до того факта, что исполняемые файлы в папке .bin потеряли свои символы c ссылка:

Локальный: lrwxr-xr-x 1 me staff ts c -> ../typescript/bin/tsc

Devops: -rwxr-xr-x 1 vsts docker ts c

Я не знаю, как я могу восстановить эти ссылки. Я искал решение, но не нашел. Кто-нибудь может помочь мне с решением этого? Большое спасибо!

...