Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 构建Vue应用程序以支持NodeJ上的服务器端渲染_Javascript_Node.js_Vue.js_Nuxt.js_Server Side Rendering - Fatal编程技术网

Javascript 构建Vue应用程序以支持NodeJ上的服务器端渲染

Javascript 构建Vue应用程序以支持NodeJ上的服务器端渲染,javascript,node.js,vue.js,nuxt.js,server-side-rendering,Javascript,Node.js,Vue.js,Nuxt.js,Server Side Rendering,我正在用Nuxt构建一个Vue应用程序。我已经建立了SSR模式。它使用入口点.Nuxt/server.js构建服务器端构建 我正在使用它在NodeJS上创建渲染器,因此我可以提供包含组件的Html模板,它将能够渲染该组件。但问题是server.js正在使用import语句来导入与NodeJ不兼容的模块 (function (exports, require, module, __filename, __dirname) { import { stringify } from '...'

我正在用Nuxt构建一个Vue应用程序。我已经建立了SSR模式。它使用入口点.Nuxt/server.js构建服务器端构建

我正在使用它在NodeJS上创建渲染器,因此我可以提供包含组件的Html模板,它将能够渲染该组件。但问题是server.js正在使用import语句来导入与NodeJ不兼容的模块

(function (exports, require, module, __filename, __dirname) { import { stringify } from '...'
                                                          ^^^^^^
SyntaxError: Cannot use import statement outside a module
我试图在package.json中设置
“type”:“module”
,或者使用.mjs扩展名。但是,我没有那么幸运

下面是生成的服务器构建

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));

有人能帮我生成节点式服务器包吗?

你能告诉我们从哪里导入它吗?@ifaruki我已经更新了这个问题。如果你需要更多信息,请告诉我。谢谢您的帮助。@ifaruki如果您有使用其他方式(如使用webpack)进行服务器端渲染的经验,也请告诉我。我想试试。你试过使用
require()
吗?是的,我试过手动将导入更改为require(),但是它无法找到用户定义的模块,比如middleware.js,尽管它确实存在。你能告诉我们你在哪里导入它吗?@ifaruki我已经更新了问题。如果你需要更多信息,请告诉我。谢谢您的帮助。@ifaruki如果您有使用其他方式(如使用webpack)进行服务器端渲染的经验,也请告诉我。我想试试。你试过改用
require()
吗?是的,我试过手动将import改为require(),但是它找不到像middleware.js这样的用户定义模块,尽管它确实存在