Javascript 构建Vue应用程序以支持NodeJ上的服务器端渲染
我正在用Nuxt构建一个Vue应用程序。我已经建立了SSR模式。它使用入口点.Nuxt/server.js构建服务器端构建 我正在使用它在NodeJS上创建渲染器,因此我可以提供包含组件的Html模板,它将能够渲染该组件。但问题是server.js正在使用import语句来导入与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 '...'
(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这样的用户定义模块,尽管它确实存在