npm当我尝试使用或工作区将现有 Nextjs 应用程序转换为单一存储库时,我遇到了 Vercel 部署问题yarn。更改为 monorepo 后,我的构建由于包Not found问题而失败。
您可以在 GitHub 上的monorepo-testing分支中查看完整的存储库。
我基本上有两个 npm 包:
\nproposals.es:这个包是实际的 Next.js 应用程序(位于./website文件夹中)@common/components:这个包包含简单的React组件(位于./common/components文件夹中)当前的文件夹结构如下所示:
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 next-env.d.ts\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package-lock.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 common\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 components \n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 index.ts\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 package.json \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 website \n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 next.config.js\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package.json\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tsconfig.json\nRun Code Online (Sandbox Code Playgroud)\n为了使应用程序正确安装并在本地成功运行,我npm install --workspaces从根级别运行,然后npm run dev从内部运行website以启动服务器。
我已完成以下步骤来尝试让这个新的 monorepo 结构发挥作用:
\nworkspaces到我的根级别package.json:next-transpile-modules到我的下一个配置文件中@common/components到我的网站package.json在尝试自动部署到 Vercel 后,我最终收到此错误git push:
Installing dependencies...\nDetected `package-lock.json` generated by npm 7...\nnpm ERR! code E404\nnpm ERR! 404 Not Found - GET https://registry.npmjs.org/@common%2fcomponents - Not found\nnpm ERR! 404 \nnpm ERR! 404 \'@common/components@*\' is not in this registry.\nRun Code Online (Sandbox Code Playgroud)\n我的 Vercel 设置在这里:
\n\n所有设置均为默认设置,除了根目录设置为website. 我认为问题可能是它没有用于npm install --workspaces安装,但是我尝试将我的 Vercel 项目中的安装脚本更改为npm install --workspaces以及cd ../../ && npm install --workspaces但两者都会出错。
我觉得我可能做了一些根本错误的事情,所以如果有人对如何解决这个问题有任何提示或建议,我们将不胜感激。谢谢!
\n问题似乎在于将npm工作区与 Next.js 一起使用...当我切换到使用yarn工作区的最小 POC 时,它似乎正在工作。我将尝试将所有内容转换为yarn现在使用,看看之后是否会更好,一旦这样做,我将在这里更新。
编辑:现在能够成功部署这两个应用程序,并且我能够从它们导入我的通用包。
回购协议: https: //github.com/saadq/proposals.es
| 归档时间: |
|
| 查看次数: |
5286 次 |
| 最近记录: |