在没有构建器的情况下以编程方式使用Nuxt

问题描述 投票:1回答:1

我正在像下面这样通过nuxt.render中间件在express中以编程方式使用nuxt

const { Nuxt, Builder } = require('nuxt')
const app = require('express')()

const api = require('../api')
app.use('/api', api)`

let config = require('../nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production')

// Init Nuxt.js
const nuxt = new Nuxt(config)
app.use(nuxt.render)

async function start() {
// Build only in dev mode
if (config.dev) {
const builder = new Builder(nuxt)
await builder.build()
}

// Listen the server
app.listen(port, host)
console.log('Server listening on ' + host + ':' + port)
}
start()

当我开发服务器api路由并对服务器端api文件进行一些更改并重新启动服务器时,整个nuxt项目每次都会构建,这会花费太多时间。这很不方便,因为nuxt文件中没有更改,而api路由文件中只有更改。

因此,构建一次后,我注释掉以下几行:

if (config.dev) {
// const builder = new Builder(nuxt)
// await builder.build()
}

然后我重新启动服务器,该服务器当然不会启动nuxt构建器。但是,现在我无法在浏览器上访问nuxt。服务器api路由有效,但是nuxt页面路由仅显示“ Nuxt正在加载…”屏幕。

如何在开发模式下使用nuxt应用程序而不每次都构建它?

node.js express nuxt.js
1个回答
0
投票

这可能是一个有效的用例,有时候一个小小的api / ui对不希望使用两个服务器。我建议使用的独立模式也可以通过nuxt/proxy运行,您可以在进行开发工作时运行它。在分离模式下,您的nuxt可以单独工作,而api也可以单独运行,并且nuxt通过`nuxt / proxy模仿上述设置。通过在nuxt config中添加像这样的smth可以非常容易地进行设置]

  modules: [
    ['@nuxtjs/proxy', {    "/api/": { target: 'http://localhost:888/api'} }]
  ]

产品中,您可以像以前一样运行。

© www.soinside.com 2019 - 2024. All rights reserved.