Исключить активы в производственной сборке - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть некоторые ресурсы (изображения, стили), которые мне нужны только во время разработки (ng serve).Эти активы не должны быть включены в производственную сборку.В производстве эти ресурсы предоставляются CDN.

Мне нужно:

  • ng. Служба должна обслуживать файлы, содержащиеся в папке ./assets-non-build

но:

  • ng build не должен содержать папку ./assets-non-build в окончательной сборке

Я рассмотрел 10 подобных вопросов здесьТАК и 5 вопросов на github, все они имеют дело с исключением файлов, но ни одна из них не решила мою ситуацию.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

PS: Код еще не опробован, но для комментария он становится слишком длинным, поэтому отправьте ответ здесь.

"architect": {
                "build": {
                    "builder": "@angular-devkit/build-angular:browser",
                    "options": {
                        ....
                        "tsConfig": "src/tsconfig.app.json",
                        "assets": [
                            "src/favicon.ico",
                            "src/assets"
                        ],
                        "styles": [
                             ...
                        ],
                        "scripts": []
                    }
                    }
                },
                "serve": {
                        "assets": [
                            "src/assets"
                        ],
                }
0 голосов
/ 14 ноября 2018

Внутри вашего angular.json есть объект конфигурации projects.{project-name}.architect.build.configurations.

Установите assets внутри записи продукта на []

"prod": {
  //...
  "assets": []
}

Это не проверено, хотя,но, судя по тому, что я знаю из файла конфигурации, это должно быть возможно.

Это сделает любую сборку и будет работать с флагом производства, чтобы исключить активы.Если вы действительно хотите, чтобы все сборки, независимо от среды, создавались без ресурсов, вы перемещаете массив assets с projects.{project-name}.architect.build.options на projects.{project-name}.architect.serve.options и устанавливаете в build пустой массив.

...