在特定目录

时间:2018-04-26 15:23:08

标签: bash angular-cli

我正在编写一个需要在特定目录中运行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项目中才能使用构建命令”

感谢。

3 个答案:

答案 0 :(得分:10)

当我需要到某个目录运行脚本时,我通常会使用pushdpopd。例如:

pushd /path/to/dir
ng build
popd

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

答案 1 :(得分:3)

这就是我所做的。

pushd angular-src && ng build && popd

答案 2 :(得分:0)

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

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


示例1:原始问题(ng build

由于Angular已经有此命令的快捷方式,因此您可以简单地运行

npm run build --prefix path\to\Angular\project

示例2:自定义命令(例如: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