ng不被识别为内部或外部命令.Jenkins + Angular CLI

D.B*_*D.B 4 node.js jenkins windows-server-2012-r2 angular-cli

我正在尝试为Angular CLI项目设置Jenkins.我在特定用户帐户下的Jenkins服务器上安装了node和Angular Cli.如果我在服务器上打开命令提示符,请执行以下命令以验证它们是否已正确安装,结果如下:

在此输入图像描述

我用Jenkins配置了项目,我创建了两个构建步骤,两个执行两个bat文件.

一个运行:npm install

第二个运行:ng build --prod

然后我构建Jenkins,它运行npm安装,但它无法运行ng build --prod,因为它说"'ng'不被识别为内部或外部命令".

难道我做错了什么?是否有另一种方法可能在node_modules文件夹上使用angular cli,因此它不需要使用服务器上安装的angular cli.似乎Angular CLI仅为我的服务器上的用户安装,但不是由Jenkins用于构建的用户安装的.

PS:我使用以下方式全局安装Angular CLI:

npm i -g @ angular/cli

Kun*_*vič 9

无需在服务器上安装angular cli,只需运行即可

npm run ng -- build 
Run Code Online (Sandbox Code Playgroud)

这将从您的项目中运行本地版本 devDependencies

这样,您就可以通过任何标志,本地CLI npm run ng -- test,npm run ng -- lint


小智 5

只是为了进一步澄清,当有人搜索相同的问题并找到此问题时(与我一样):

如果要在运行build命令时使用--prod标志(如本问题所述),则可以使用:

npm run ng -- build --prod
Run Code Online (Sandbox Code Playgroud)

重要的是“ ng”和“ build”之间的带空格的“-”。这是由于“ npm run”的语法所致,可以在这里找到更多信息:https : //docs.npmjs.com/cli/run-script

这也解决了在已接受的答案下方的注释中描述的问题:“此方法有效,但排除了运行构建时--test之类的其他参数”