Несколько приложений 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 обеспечить очистку кэша ( см. Мой ответ здесь).