以编程方式使用 Nuxt,无需构建器

1pr*_*ham 5 node.js express nuxt.js

我在 Express 中以编程方式使用 nuxt 和 nuxt.render 中间件,如下所示

\n
const { Nuxt, Builder } = require(\'nuxt\')\nconst app = require(\'express\')()\n\nconst api = require(\'../api\')\napp.use(\'/api\', api)\n\nlet config = require(\'../nuxt.config.js\')\nconfig.dev = !(process.env.NODE_ENV === \'production\')\n\n// Init Nuxt.js\nconst nuxt = new Nuxt(config)\napp.use(nuxt.render)\n\nasync function start() {\n// Build only in dev mode\n  if (config.dev) {\n    const builder = new Builder(nuxt)\n    await builder.build()\n  }\n\n  // Listen the server\n  app.listen(port, host)\n  console.log(\'Server listening on \' + host + \':\' + port)\n}\nstart()\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

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

\n
if (config.dev) {\n// const builder = new Builder(nuxt)\n// await builder.build()\n}\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

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

\n

hus*_*ayt 0

这可能是一个有效的用例,有时人们不想为非常小的 api/ui 对使用两台服务器。我建议也有一个独立的模式可以工作nuxt/proxy,你可以在进行开发工作时运行它。在分离模式下,你的 nuxt 单独工作,api 也单独运行,并且 nuxt 通过 `nuxt/proxy 模仿上述设置。通过在 nuxt 配置中添加这样的东西来设置非常容易

  modules: [
    ['@nuxtjs/proxy', {    "/api/": { target: 'http://localhost:888/api'} }]
  ]
Run Code Online (Sandbox Code Playgroud)

在产品中你可以像以前一样运行。