Несколько приложений Aurelia бок о бок

В настоящее время мне поручено построить 2 интерфейса для службы, которую я построил.

Вывод из обоих этих пользовательских интерфейсов должен находиться в одной корневой папке.

Я нашел раздел с именами базовых пакетов в файле "aurelia.json" и переименовал пакеты, созданные для моего проекта, когда он был собран, мой проект, как и ожидалось, создал 2 новых пакета в каталоге scripts с новыми именами.

Однако, запустив мой проект, я обнаружил, что index.html получает 404, пытаясь загрузить "vendor-bundle" (который я переименовал в "service-vendor-bundle").

Нет проблем, я просто отредактировал index.html для ссылки на новый файл, и бинго, 404, решено.

Проблема, однако, в том, что "service-vendor-bundle" теперь не может загружать "service-app-bundle".

Я предположил (возможно, неправильно), что, когда я переименовал комплекты в моем файле aurelia.json, выходные данные сборки также будут настроены соответствующим образом для загрузки файлов.

Мне нужно иметь возможность настроить этот beacuse, как только 2 приложения aurelia будут завершены, им нужно будет поделиться папкой сценариев, поэтому мне нужно

uione.html для загрузки "scripts\uione-vendor-bundle.js" и "scripts\uione-app-bundle.js"

и мне нужно

uitwo.html для загрузки "scripts\uitwo-vendor-bundle.js" и "scripts\uitwo-app-bundle.js"

Окончательная разметка файла на сервере будет выглядеть примерно так:

root
  uione.html
  uitwo.html
  scripts
    uione-vendor-bundle.js
    uione-app-bundle.js
    uitwo-vendor-bundle.js
    uitwo-app-bundle.js
  images
    *.png

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

Мой файл aurelia.json в настоящее время выглядит так:

.........
 "plugins": [
    {
      "name": "text",
      "extensions": [
        ".html",
        ".css"
      ],
      "stub": true
    }
  ]
},
"options": {
  "minify": "stage & prod",
  "sourcemaps": "dev & stage"
},
"bundles": [
  {
    "name": "uione-app-bundle.js",
    "source": [
      "[**/*.js]",
      "**/*.{css,html}"
    ]
  },
  {
    "name": "uione-vendor-bundle.js",
    "prepend": [
      "node_modules/bluebird/js/browser/bluebird.core.js",
      "node_modules/requirejs/require.js"
    ],
..........

и я использую инструмент Aurelia cli (au ...) для своих задач на основе Aurelia.

Любые указатели о том, как этого добиться, были бы великолепны.

1 ответ

Решение

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

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

index.html <body aurelia-app="main"> <script src="scripts/my-special-vendor-bundle.js" data-main="aurelia-bootstrapper"></script> <script src="scripts/my-special-app-bundle.js"></script> </body>

Я проверил это, и это работает нормально для меня. Я использую эту технику загрузки вручную в своем собственном проекте, чтобы позволить версионности сценариев ASP.Net обеспечить очистку кэша ( см. Мой ответ здесь).

Другие вопросы по тегам