在安装Jenkins之前我运行了这个: npm install -g @ angular / cli
但我也在项目的package.json中的devDependencies中有这个:
" @ angular / cli":" 1.0.0-beta.32.3" ,
运行Jenkins构建时,我在日志中收到此消息:
'纳克'不被识别为内部或外部命令,可操作程序或批处理文件。
=======================================
以下是Jenkins中的Windows批处理命令:
cmd / c致电npm install
设置路径=%WORKSPACE%\ node_modules \ @angular \ cli \ bin;%PATH%
回显%PATH%
ng build -prod
========================================
这是Jenkins的更多日志输出:
C:\ Program Files(x86)\ Jenkins \ workspace \ UiUnitTests> ng build -prod
'纳克'不被视为内部或外部命令, 可操作程序或批处理文件。
C:\ Program Files(x86)\ Jenkins \ workspace \ UiUnitTests>退出9009 构建步骤'执行Windows批处理命令'将构建标记为失败
但是当我从命令行(而不是在Jenkins工作中)运行它时,这很好用:
C:\ Program Files(x86)\ Jenkins \ workspace \ UiUnitTests> ng build -prod
要禁用此警告,请使用" ng set --global warnings.versionMismatch = false"。 哈希:7853ecb5a81a25eadbeb 时间:61317ms chunk {0} polyfills.7aaf5284cd5921eea40b.bundle.js(polyfills)278 kB {4} [initial] [rendered] chunk {1} main.3380f71d3e71966aea27.bundle.js(main)371 kB {3} [initial] [rendered] chunk {2} styles.9db1bafdfc989b37db97.bundle.css(styles)69字节{4} [initial] [rendered] chunk {3} vendor.24574fc8320129058fac.bundle.js(vendor)2.18 MB [initial] [rendered] chunk {4} inline.d1f5b52100bed2568d44.bundle.js(内联)0字节[entry] [已呈现]
C:\ Program Files(x86)\ Jenkins \ workspace \ UiUnitTests>
=============================================== =
最后但并非最不重要的,这是来自 echo%PATH%
的Jenkins日志输出C:\ Program Files(x86)\ Jenkins \ workspace \ UiUnitTests> echo C:\ Program Files(x86)\ Jenkins \ workspace \ UiUnitTests \ node_modules \ @angular \ cli \ bin; C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem; C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C:\ Program Files \ Amazon \ cfn-bootstrap \; C:\ Ruby23-x64 \ bin; C:\ Program Files \ nodejs \; C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Local \ Microsoft \ WindowsApps C:\ Program Files(x86)\ Jenkins \ workspace \ UiUnitTests \ node_modules \ @angular \ cli \ bin; C:\ Windows \ system32; C:\ Windows; C:\ Windows \ System32 \ Wbem; C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C:\ Program Files \ Amazon \ cfn-bootstrap \; C:\ Ruby23-x64 \ bin; C:\ Program Files \ nodejs \; C:\ Windows \ system32 \ config \ systemprofile \应用程序数据\本地\微软\ WindowsApps
答案 0 :(得分:26)
不要全局安装CLI。
为repo运行npm install
,只要您需要运行ng
命令,请使用此命令:
node_modules/.bin/ng [command goes here]
这将节省安装时间,并确保本地和全球版本之间没有差异。
其他评论:将您的应用更新到最新版本的CLI
答案 1 :(得分:3)
试试npm run ng build
。唯一的问题是它在构建后省略了--prod
或--test
之类的任何其他参数。
以下是我用于从Jenkins成功运行角度构建的命令。最后一个命令通过设置路径变量以脏方式执行。不知道是否有更清洁的方法来做到这一点。这确实可以正确执行命令而不会遗漏任何内容。
@echo on
cmd /c npm install -g @angular/cli@latest
echo yarn Install
cmd /c yarn
echo Build
set PATH=%PATH%;C:\Users\Administrator\AppData\Roaming\npm;C:\Users\Administrator\AppData\Roaming\npm\node_modules\@angular\cli\bin;
ng build --prod --aot=true