我正在编写一个需要在特定目录中运行ng build
的自动构建脚本。我的项目有以下结构:
project
├ build-script
└ project-client
└ package.json
ng build
正在寻找package.json文件,但它无法在当前位置找到它。有没有办法可以将ng build
引导到子目录而不执行cd
(因为bash对于更改目录有点不稳定)?基本上,我只需要一种方法告诉ng build
在我指定的目录中操作。
我尝试过ng build ./project-client/
,但是它给出的错误是“你必须在angular-cli项目中才能使用构建命令”
感谢。
答案 0 :(得分:10)
当我需要到某个目录运行脚本时,我通常会使用pushd
和popd
。例如:
pushd /path/to/dir
ng build
popd
运行此代码段后,您的工作目录(pwd
)将保持不变。
答案 1 :(得分:3)
这就是我所做的。
pushd angular-src && ng build && popd
答案 2 :(得分:0)
注意:此答案特定于Angular命令
您可以在使用参数npm run
指示子目录的同时,利用--prefix
命令运行Angular命令。
ng build
)由于Angular已经有此命令的快捷方式,因此您可以简单地运行
npm run build --prefix path\to\Angular\project
ng build --prod
)首先,在您的package.json
文件中为此命令创建一个快捷方式
{
"scripts": {
// "CMD-SHORTCUT": "custom-command"
"prod-build": "ng build --prod"
},
}
然后,以与示例1相同的方式运行新的快捷方式。
npm run prod-build --prefix path\to\Angular\project