Создайте приложение Vue для поддержки рендеринга на стороне сервера на NodeJS - PullRequest
1 голос
/ 29 мая 2020

Я создаю приложение Vue с помощью Nuxt. Я построил с режимом SSR. Он строит серверную сборку с точкой входа .Nuxt / server. js.

Я использую https://ssr.vuejs.org/api/#createbundlerenderer для создания средства визуализации на NodeJS, поэтому я могу предоставить шаблон Html с компонентом внутри, и он сможет визуализировать этот компонент. Но проблема в сервере. js использует операторы import для импорта модулей, которые не работают с NodeJS.

(function (exports, require, module, __filename, __dirname) { import { stringify } from '...'
                                                          ^^^^^^
SyntaxError: Cannot use import statement outside a module

Я пытался установить "type": "module" в пакете . json или используйте расширение .m js. Но с этим не повезло.

Вот сгенерированная сборка сервера.

import { stringify } from 'querystring'
import Vue from 'vue'
import fetch from 'node-fetch'
import middleware from './middleware.js'
...

Вот код, который я использовал для рендеринга сгенерированной сборки.

const { createBundleRenderer } = require('vue-server-renderer');

const renderer = createBundleRenderer('/ABSOLUTE_PATH/.nuxt/server.js');
renderer.renderToString().then(html => console.log(html)).catch(e => console.error(e));

Может ли кто-нибудь помочь мне сгенерировать серверный пакет в стиле узла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...