在Azure Dev Ops上使用Weyland构建问题

问题描述

我有一个使用Durandal构建的应用程序,并使用Weyland进行了构建。我已经全局安装了Weyland,并且在本地运行命令weyland build -c "path\to\config"时,它可以正常工作并导致以下输出

info jshint Linting 6 files.  
info jshint Passed for App/cart/config.js.  
info jshint Passed for App/cart/main.js.  
info jshint Passed for App/cart/services/datacontext.js.  
info jshint Passed for App/cart/viewmodels/cart.js.  
info jshint Passed for App/cart/viewmodels/nextsteps.js.  
info jshint Passed for App/cart/viewmodels/shell.js.  
info uglifyjs Uglifying 22 files.  
info uglifyjs Uglified App/cart/config.js.  
info uglifyjs Uglified App/cart/main.js.  
WARN: Dropping unused function argument c [null:22,32]

当我在Azure Dev Ops中运行相同的序列而不是WARN时,出现错误

错误! uglifyjs TypeError:sys.error不是函数

info jshint Linting 6 files.
info jshint Passed for App/cart/config.js.  
info jshint Passed for App/cart/main.js.  
info jshint Passed for App/cart/services/datacontext.js.  
info jshint Passed for App/cart/viewmodels/cart.js.  
info jshint Passed for App/cart/viewmodels/nextsteps.js.  
info jshint Passed for App/cart/viewmodels/shell.js.  
info uglifyjs Uglifying 22 files.  
info uglifyjs Uglified App/cart/config.js.  
info uglifyjs Uglified App/cart/main.js.  
ERR! uglifyjs TypeError: sys.error is not a function

堆栈跟踪:

ERR! uglifyjs TypeError: sys.error is not a function
ERR! uglifyjs     at Function.UglifyJS.AST_Node.warn_function (C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\tools\node.js:42:9)
ERR! uglifyjs     at Function.AST_Node.warn (C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\ast.js:110:18)
ERR! uglifyjs     at Compressor.warn (C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\compress.js:81:27)
ERR! uglifyjs     at TreeTransformer.before (C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\compress.js:956:44)
ERR! uglifyjs     at AST_Defun.transform (C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\transform.js:61:35)
ERR! uglifyjs     at C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\transform.js:80:25
ERR! uglifyjs     at doit (C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\utils.js:114:23)
ERR! uglifyjs     at MAP (C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\utils.js:140:52)
ERR! uglifyjs     at do_list (C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\transform.js:79:16)
ERR! uglifyjs     at C:\npm\prefix\node_modules\weyland\node_modules\uglify-js\lib\transform.js:168:21

正在使用Command Line task执行构建。

我的计算机和管道都配置有

Node v12.16.2 
NPM 6.14.4

为什么Azure Pipeline VM无法显示警告?我该如何解决

解决方法

由于您没有共享配置的任务定义,所以我猜您在选中“ 标准错误失败”选项时遇到了此错误。

enter image description here

因为如果选中此选项,我也会遇到同样的问题。

enter image description here

但是,如果我取消选中选项“ 标准错误失败”,此意外问题将消失。

enter image description here

因此,要解决此问题,请确保未选中命令行任务的选项“ 标准错误失败”。