Это делает невозможным добавление Vue в качестве системы представления в среду, называемую Nest with Express.
Я не думал, что адаптация Vue была настолько сложной.Вот почему я здесь, чтобы вы могли направить меня по правильному пути, и я не буду использовать Vue напрямую.
Первая ошибка:
[Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.
(found in <Root>)
app.controller.ts
import { Controller, Get, Render, Response } from '@nestjs/common';
import { createRenderer } from 'vue-server-renderer';
import { createApp } from './app';
import HelloComponent from './components/Hello';
const context = {data: {}, view: '', componets: {} };
@Controller()
export class AppController {
@Get()
getHello(@Response() res): any {
context.data = { message: 'Esto es un nuevo mensaje 2' };
context.componets = { 'hello' : HelloComponent };
const app = createApp(context);
const renderer = createRenderer();
renderer.renderToString(app, (err, html) => {
res.end(html);
});
}
}
import {createApp} из './app';
import Vue from 'vue';
export function createApp(context: any) {
return new Vue({
data: context.data,
template: fs.readFileSync('./index.html', 'utf-8'),
components: context.components,
}).$mount('#app');
}
Я пытаюсь создать базовый шаблон, а затем добавить компоненты для каждого контроллера или маршрута с помощью NestJS.
Я не знаю, возможно ли это, и вынужден ли я использовать Webpack, поскольку в настоящее время я им не пользуюсь.
Спасибо!