我正在像下面这样通过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应用程序而不每次都构建它?
这可能是一个有效的用例,有时候一个小小的api / ui对不希望使用两个服务器。我建议使用的独立模式也可以通过nuxt/proxy
运行,您可以在进行开发工作时运行它。在分离模式下,您的nuxt可以单独工作,而api也可以单独运行,并且nuxt通过`nuxt / proxy模仿上述设置。通过在nuxt config中添加像这样的smth可以非常容易地进行设置]
modules: [ ['@nuxtjs/proxy', { "/api/": { target: 'http://localhost:888/api'} }] ]
产品中,您可以像以前一样运行。