Как генерировать активы из плагинов машинописного текста в Angular 6 - PullRequest
0 голосов
/ 31 августа 2018

Контекст

Миграция Угловая 4 + Угловое семя в Угловое 6 + Угловое кли

Проблема

Я использую динамическую загрузку плагинов внутри одного из моих компонентов, используя SystemJS

SystemJS.import("client/plugins/" + this.pluginElement.type + "/" + this.pluginElement.type + ".js")

Если я на самом деле запускаю приложение, у меня есть:

http://localhost/client/plugins/dapChart/dapChart.js 404 (Not Found)

Действительно, файл js отсутствует как актив.

В папке src / client / plugins у меня есть набор модулей, написанных на Typescript, которые я могу свободно использовать в своем приложении.

Я хотел бы найти способ дать угловой программе CLI скомпилировать папку с плагинами, рассмотреть результат как ресурс и скопировать его, как если бы он находился внутри моей папки dist.

Опции

На мой взгляд, я вижу 3 варианта (без каких-либо доказательств, если какой-либо из них хорош):

  • Проверьте, как настроить сборку Angular-cli https://codeburst.io/customizing-angular-cli-6-build-an-alternative-to-ng-eject-a48304cd3b21 Но я совершенно новый и буду тратить много времени на проверку
  • Скомпилируйте вручную папку плагинов и поместите ее в папку «pluginCompiled» и объявите ее как Assets в Angular.json с

     tsc -p src/client/plugins --outDir src/client/assets/plugins
    

    Но очень неприятно останавливать подачу, компилировать и запускать ее обратно

  • Создайте подпроект (рабочее пространство) в Angular.json, который скомпилирует плагины и поместит его в «pluginCompiled»

Вопрос

Как я могу поместить свои перенесенные плагины в каталог выходных данных сборки с помощью Angular 6 / Angular cli

1 Ответ

0 голосов
/ 31 августа 2018

Я действительно забыл, как я это сделал сам, но вы можете добавить файл конфигурации cli.

В angular-cli вы можете сделать что-то вроде:

  "apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": [
        "assets",
        "favicon.ico"
      ],
      "client": [ "plugins": [ ] ], //something like this
      "index": "index.html",
      "main": "main.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "app",
    }
...