【问题标题】:copying assets shared by all configurations复制所有配置共享的资产
【发布时间】:2019-03-26 08:27:51
【问题描述】:

在我的项目构建配置中,我有以下资产声明:

"assets": [ "src/favicon.ico", "src/assets", "src/assets/fonts", "src/images", "src/web.config" ],

然后在我的部署配置中:

"deploy": { "assets": [ {"glob": "config.json", "input": "src/environments/", "output": "/"}],

使用“部署”配置进行构建时,不再部署上面声明的资产。只有 config.json 文件被部署。

我必须将这些资产添加到“部署”中的资产数组作为解决方法。这是正确的方法吗?或者有没有办法避免覆盖资产构建声明?

【问题讨论】:

    标签: angular angular-cli angular-cli-v7


    【解决方案1】:

    我不知道你为什么要配置特定的部署,它已经在angular.json 中配置了,你可以像提供的示例一样在这个文件中添加一个新的配置 运行它 ng build --c=build 或使用 ng build --c=staging其中c代表配置

    顺便说一下,你应该得到包含资产文件的 dist 文件夹

      "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/AngularProject",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.app.json",
            "assets": [
              "src/favicon.ico",
              "src/assets",
              "src/web.config",
              "src/WEB-INF"
            ],
            "styles": [
              "src/styles.scss",
              "src/assets/css/fontawesome-all.min.css",
              "src/assets/css/themify-icons.css"
            ],
            "stylePreprocessorOptions": {
              "includePaths": [
              ]
          },
            "scripts": [
              "./node_modules/jquery/dist/jquery.js",
              "./node_modules/popper.js/dist/umd/popper.min.js",
              "./node_modules/bootstrap/dist/js/bootstrap.js",
              "./node_modules/jspdf/dist/jspdf.min.js",
              "./node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js"
            ]
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "4mb",
                  "maximumError": "5mb"
                }
              ]
            },
            "staging": {   // a new configuration 
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.staging.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "4mb",
                  "maximumError": "5mb"
                }
              ]
            }
          }
        },
    

    要部署,使用所需配置运行 ng build 就足够了

    我不确定我是否知道你的问题

    【讨论】:

    • 是的,我得到了包含资产文件的 dist 文件夹,但前提是我将构建资产包含在“部署”配置中。否则它们不会被添加到 dist 文件夹中。我必须在“部署”配置中重新定义资产,因为对于部署,我必须包含 config.json 文件(请参阅我的第一篇文章)。所以我想知道如何将构建中的资产与“部署”配置中的资产连接起来而不是复制?
    • 抱歉没听懂,但在package.jsonscript 中使用postinstall 可能会达到您的要求,请问您是如何配置Deploy 的?有几种方法,我尝试使用 Package.json 中的脚本部署到 Azure,您可以使用 Kudu
    猜你喜欢
    • 2014-06-24
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    相关资源
    最近更新 更多