在特定目录中运行`ng build`

JGr*_*dal 8 bash angular-cli

我正在编写一个需要ng build在特定目录中运行的自动构建脚本.我的项目有以下结构:

project
? build-script
? project-client
  ? package.json
Run Code Online (Sandbox Code Playgroud)

ng build正在寻找package.json文件,但它无法在当前位置找到它.有没有办法可以直接ng build到子目录而不做一个cd(因为bash对于更改目录有点不稳定)?基本上,我只需要一种方法来告诉ng build我在我指定的目录中操作.

我已经尝试过,ng build ./project-client/但它给出的错误是"你必须在angular-cli项目中才能使用build命令"

谢谢.

dma*_*dic 13

当我需要到某个目录只运行一个脚本我通常使用pushdpopd.例:

pushd /path/to/dir
ng build
popd
Run Code Online (Sandbox Code Playgroud)

运行此代码段后,您的工作目录(pwd)将保持不变.


Bur*_*han 10

注意:此答案特定于 Angular 命令

您可以利用该npm run命令运行 Angular 命令,同时使用参数--prefix指示子目录。


示例 1:原始问题 ( ng build)

由于 Angular 已经有这个命令的快捷方式,你可以简单地运行

npm run build --prefix path\to\Angular\project
Run Code Online (Sandbox Code Playgroud)

实施例2:自定义命令(例如:ng build --prod

首先,在您的package.json文件中为此命令创建一个快捷方式

npm run build --prefix path\to\Angular\project
Run Code Online (Sandbox Code Playgroud)

然后,以与示例 1 相同的方式运行新的快捷方式:

npm run prod-build --prefix path\to\Angular\project
Run Code Online (Sandbox Code Playgroud)


Hir*_*age 7

这就是我所做的。

pushd angular-src && ng build && popd
Run Code Online (Sandbox Code Playgroud)