微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 pm2 在不同的 URL 和端口上运行我的 nuxt 应用程序?

如何解决如何使用 pm2 在不同的 URL 和端口上运行我的 nuxt 应用程序?

我想使用 pm2 和生态系统.config.js 在不同的 URL 和端口上运行我的 Nuxt 应用程序。

我希望它像以下 package.json 脚本一样运行:

"devhost": "nuxt --hostname 'my.url.domain' --port 8080"

这个 scipt 允许我在我想要的端口和 URL 上运行我的 nuxt 应用程序。但是,如果我遵循 nuxt 文档 here 给出的配置,该应用程序会在 localhost:3000 上运行,因此我无法在其他机器上运行该应用程序,从而造成问题。

不幸的是,我已经在网上搜索过,似乎无法找到适合我的具体情况的解决方案。

我尝试将 script 选项更改为 script: "npm" 并像这样设置 argsargs: "devhost" 但即使这样也不起作用。

运行 pm2 logs 表示 can't run command "nuxt-dev-host",因此它不起作用。

我也尝试使用相同的 script./node_modules/nuxt/bin/nuxt.js 更改为 args,但它仍然不起作用。

请帮忙。

解决方法

官方主页展示了如何使用express进行构建。

根据官网,制作server.js,代码如下。

const { Nuxt,Builder } = require("nuxt");

const app = require("express")();
const isProd = process.env.NODE_ENV === "production";
const port = process.env.PORT || 3080;

// We instantiate Nuxt.js with the options
const config = require("./nuxt.config.js");
config.dev = !isProd;
const nuxt = new Nuxt(config);

// Render every route with Nuxt.js
app.use(nuxt.render);

// Build only in dev mode with hot-reloading
if (config.dev) {
  new Builder(nuxt).build().then(listen);
} else {
  listen();
}

function listen() {
  // Listen the server
  app.listen(port);
  console.log("Server listening on `localhost:" + port + "`.");
}

然后转到 package.json 并编写脚本。

"start": "cross-env PORT=80 NODE_ENV=production pm2 start server.js"

这里需要说明的是,NODE_ENV 处于部署模式,因此用作生产,而提问者处于开发模式,因此存在差异。

必须安装跨环境模块。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。