Я недавно перешел на файлы 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?