如何在 Angular 中为 prod 和 test 设置不同的 dist 文件夹

Yas*_*l S 3 angular-cli angular

在我的 angular 项目中,我们已经自动构建和部署到 DEV、TEST 和 PROD 环境,我们有一个特殊要求,即在为测试环境创建/构建项目时(使用命令 ng build --test)我们还需要创建构建用于生产环境。所以我的确切要求是在为测试环境创建构建的同时为 prod 创建构建。

例如,如果我运行命令 ng build --test 它应该在 dist 文件夹中创建文件用于 test 和 proddist 为 prod 文件,在内部它应该在运行 ng build --test 命令的同时运行 ng build --prod 命令

请帮助我提供想法/示例,了解我如何做到这一点。

Psy*_*Gik 5

在您的package.json

"build":"ng build -test --output-path=test && ng build -prod --output-path=prod"
Run Code Online (Sandbox Code Playgroud)

然后运行 $ npm build

这会将测试构建构建到/test文件夹并将生产构建构建到/prod.

理想情况下,在 CI/CD 中,您应该有单独的测试和生产构建阶段。


Ala*_*ine 4

您还可以通过在不同的配置中添加此行来更新 angular.json 文件"outputPath": "dist_stage",,如下所示:

      ...
      "configurations": {
        "production": {
          "outputPath": "dist/prod",
          ...
        },{
        "staging": {
          "outputPath": "dist/staging",
          ...
        },{
        "development": {
          "outputPath": "dist/dev",
          ...
        }, ...
Run Code Online (Sandbox Code Playgroud)

然后像平常一样构建:

ng build --configuration=staging
Run Code Online (Sandbox Code Playgroud)