Идея
Сначала у вас есть основной веб-сайт Nuxt, как и любой другой.Затем вы добавляете мой модуль в ваш проект.Затем мой модуль добавляет субдомен «admin.example.com» к вашему проекту, который представляет собой полностью усовершенствованный веб-сайт на основе Nuxt, полностью собственный, но запущенный из процесса ваших проектов, поэтому вместо создания двух веб-проектов, которые должны запускаться отдельно,Идея состоит в том, что я могу сделать свой проект одного сайта, а затем один модуль, который добавляет другой сайт, превращая три проекта в два.
Код
module.js
this.addServerMiddleware(vhost('admin.website.com', adminApp));
adminApp.js
const {Nuxt, Builder} = require('nuxt');
const config = require('../admin/nuxt.config');
config.dev = true;
const nuxt = new Nuxt(config);
if (nuxt.options.dev) {
new Builder(nuxt).build()
.catch(function(error) {
console.log(error);
})
}
module.exports = nuxt.render;
Часть nuxt.config.js с веб-сайта администратора
// __dirname leads to my modules directory
// process.cwd() leads to the main websites folder
module.exports = {
mode: 'universal',
srcDir: __dirname,
rootDir: __dirname,
modulesDir: process.cwd(),
Проблема
Всякий раз, когда я захожу на "admin.website.com "это приводит к следующему сообщению:
Я уже пробовал множество различных изменений и настроек, но, похоже, ничего не работает.Насколько я могу судить, это может быть связано с тем, что либо A) веб-сайт создается где-то, но не находит сгенерированные файлы ресурсов, либо B) что я недостаточно молился монстру спагетти.
Я пытался экспортировать adminApp
как приложение Express, которое использует app.use(nuxt.render)
, но это приводит к той же ошибке, так что я уверен, что это не проблема.Я пытался использовать приложение Express для api.website.com
, и это прекрасно работает, поэтому я знаю, что я похож на ЭТО | - |близок к тому, чтобы заставить все это работать.Подобное добавление поддоменов работает, и каждый поддомен может быть приложением Express, но по какой-то причине Nuxt не может найти какие-либо ресурсы при использовании таким способом.В соответствии с https://nuxtjs.org/api/nuxt-render/ nuxt.render(req, res)
, как вы можете видеть, принимает req
и res
в качестве аргументов, что должно означать, что мне не нужно использовать его через приложение Express, serverMiddleware
уже является приложением Express.
Мысли?