Next.js实验性HTTPS在外接硬盘运行dev时无法正常工作
解决Mac Studio M1外接硬盘Next.js项目
--experimental-https证书生成失败问题 问题分析
外接硬盘上的Next.js项目使用--experimental-https参数时无法自动生成自签名证书,但主硬盘项目可正常运行,核心原因是外接硬盘权限限制或mkcert工具在写入外接存储时遇到沙箱限制。
解决方案
1. 修复外接硬盘权限
- 打开访达,右键点击外接硬盘「Storage SSD」,选择「显示简介」
- 展开「共享与权限」面板,点击锁头图标解锁(输入系统密码)
- 确保当前用户的权限设置为「读与写」,点击右下角齿轮图标,选择「应用到包含的项目」
- 重启终端后重新执行
npm run dev --experimental-https
2. 手动生成证书并指定路径
若自动生成仍失败,手动生成证书后让Next.js直接调用:
- 在终端执行以下命令(主目录下运行,确保权限正常):
mkcert -install mkcert localhost 127.0.0.1 ::1 - 将生成的
localhost.pem和localhost-key.pem文件复制到外接项目的certificates文件夹(无此文件夹则新建) - 修改项目
package.json中的dev命令:"scripts": { "dev": "next dev --experimental-https --cert ./certificates/localhost.pem --key ./certificates/localhost-key.pem" } - 执行
npm run dev启动项目
3. 重新安装mkcert工具
若mkcert本身存在权限或版本异常,重新安装:
brew install mkcert mkcert -install
安装完成后再尝试自动生成证书。
内容的提问来源于stack exchange,提问作者Norman Pleitez
相关产品推荐
相关产品推荐

