Как объяснить разницу между версиями узлов в сборках Azure DevOps - PullRequest
0 голосов
/ 22 октября 2019

Я недавно перешел на файлы TypeScript для конфигурации WebPack, чтобы лучше набирать текст и выявлять проблемы конфигурации. Я использовал документацию на веб-сайте WebPack (https://webpack.js.org/configuration/configuration-languages/#typescript).

Однако наша сборка пакета на DevOps Azure завершается с ошибкой:

Error: Failed to replace env in config: ${APPDATA}
    at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:415:13
    at String.replace (<anonymous>)
    at envReplace (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:411:12)
    at parseField (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:389:7)
    at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:330:24
    at Array.forEach (<anonymous>)
    at Conf.add (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:328:23)
    at ConfigChain.addString (C:\Program Files\nodejs\node_modules\npm\node_modules\config-chain\index.js:244:8)
    at Conf.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:316:10)
    at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:90:16

TypeError: Cannot read property 'loaded' of undefined
    at exit (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:98:27)
    at errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:216:3)
    at C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js:77:20
    at cb (C:\Program Files\nodejs\node_modules\npm\lib\npm.js:225:22)
    at C:\Program Files\nodejs\node_modules\npm\lib\npm.js:263:24
    at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:83:7
    at Array.forEach (<anonymous>)
    at Conf.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:82:13)
    at Conf.f (C:\Program Files\nodejs\node_modules\npm\node_modules\once\once.js:25:25)
    at Conf.emit (events.js:198:13)
C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:98
  var doExit = npm.config.loaded ? npm.config.get('_exit') : true
                          ^

Я проверял подобные проблемы на StackOverflowУ меня нет файла .npmrc в проекте. Нужно ли устанавливать переменную env в моем файле .yml?

Однако это работает, когда я явно устанавливаю версию NodeTool (любую) в моем скрипте сборки. (.yml)

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.16.3'

Затем exe используется из 'C: \ hostedtoolcache \ windows \ node \ 10.16.3 \ x64 \ npm.cmd' вместо 'C: \ Program Files \ nodejs'(если явно не указана версия узла).

В настоящее время это npm для моего скрипта выпуска веб-пакета:

"scripts": {
    "webpack-release": "cross-env TS_NODE_PROJECT=\"./tsconfig.json\" webpack --mode production --config ./webpack/webpack.config.ts"
  }

Это связано со средой Azure / Windows? пробелов в URL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...