如何解决如何使用 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"
并像这样设置 args
:args: "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 举报,一经查实,本站将立刻删除。