如何更改 Nuxt 构建的入口点?

Posted

技术标签:

【中文标题】如何更改 Nuxt 构建的入口点?【英文标题】:How to change entrypoint on Nuxt build? 【发布时间】:2021-05-21 22:22:32 【问题描述】:

我通过 CLI 创建了一个 Nuxt 应用程序,并选择了使用 Node.js 作为后端服务器的 s-s-r 应用程序。在我的服务器上,Passenger 配置为从 app.js 文件运行快速应用程序,我无权更改它。 Nuxts 入口点默认为server.js。我试图在 nuxt 文档上找到一些东西,但我找不到任何有用的东西。

我在这个网站上搜索:https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-build

我还认为这些 Js 文件在 ES6 模块格式化系统中,但我还需要 CommonJS 来运行这个带有乘客的应用程序。有没有办法通过 .babelrc 或 webpack 配置来改变这个??

【问题讨论】:

它似乎是硬编码的:github.com/nuxt/nuxt.js/blob/… 是的,但这是在 webpack 上,你认为我可以如何更改它? 我认为在输出中创建符号链接的最佳方式是从“app.js”到“server.js”的旧版本 你能粘贴这个作为答案吗? 【参考方案1】:

Webpack 的输出名称在 Nuxt source code 中硬编码。 所以不能通过配置更新。

目前最好的方法是在你的输出文件夹中创建一个从“app.js”到“server.js”的符号链接(也许在“postbuild”脚本上?)

【讨论】:

【参考方案2】:

感谢 Nicolas Pennec 指出我的答案。

当我们想通过Passenger运行nuxt.js构建的应用程序时,我们实际上不需要重写webpack等。

我们需要构建我们的 nuxt 应用程序:

yarn build

该操作的结果是新创建的 .next 文件夹,剩下要做的就是我们需要使用 npm run start 启动此文件夹,但使用Passenger,我们无法通过命令执行此操作。

在我们托管的根文件夹中,例如public_nodejs创建app.js文件(我服务器上的Passenger要求主文件叫app.js)

文件的结构现在看起来像:

.next
app.js
package.json

在 app.js 里面简单写:

require("@nuxt/cli").run(["start"])

安装所有依赖项,您的 nuxt js 应用将通过Passenger 运行

【讨论】:

以上是关于如何更改 Nuxt 构建的入口点?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用更改的入口点(sys.path)在 Python 中导入文件?

如何将入口点过程从“WinMain”更改为“main”或任何自定义函数?

如何在 Mac OS X 上构建包含入口点的 C 程序?

如何将入口点更改为 MFC 应用程序的 _tmain()

使用 Detox 和 React Native 更改应用程序入口点

具有多个入口点的 Webpack watch() - 为未更改的文件发送捆绑包?