如何更改 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”或任何自定义函数?