前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nuxt脚手架nuxi初始化失败原因&解决方法 - wuuconix's blog

Nuxt脚手架nuxi初始化失败原因&解决方法 - wuuconix's blog

作者头像
wuuconix
发布2023-03-16 16:36:40
1.1K0
发布2023-03-16 16:36:40
举报
文章被收录于专栏:wuuconixwuuconix

起因

前几天终于把毕业设计的开题报告整完了,有了一点时间干自己的事,于是就想着学学nuxt3。

结果发现跟着官方教程敲的第一行命令就出现了问题。

代码语言:javascript
复制
npx nuxi init nuxt3-app

这行代码是nuxt的脚手架,会生成一个最简单的模板项目。

脚手架报错
脚手架报错

这行命令会去github拉取相关文件,然后连接失败报错了。

国内由于墙的墙的原因,raw.githubusercontent.com这个域名受到了DNS污染,没法连接看好像挺合理的,但是关键我平时都是开着代理的。

curl能够正常获取
curl能够正常获取

如图所示,我直接用curl没有一点问题,能够正确获取 raw.githubusercontent.com 上的文件。

看来,唯一的解释就是脚手架node程序没有走代理。

原因的确认

经过简单搜索,我在nuxt framework仓库中的issue #8002 找到了类似情况。

从中可以了解到 nuxt的脚手架 nuxi 使用了 giget 来从nuxt项目模板仓库中获取文件。

giget干的事情很简单,就是利用node从github上拉取相应仓库。实际上giget貌似是nuxt团队对另一个相似的项目degit的拙劣仿制。

两者都可以用方便的命令从github拉取仓库。

唯一的不同就是degit支持自动从环境变量中获取https_proxy进行代理,而giget完全没有考虑这一点。

HTTPS proxying If you have an https_proxy environment variable, Degit will use it.

degit和giget对比
degit和giget对比

临时解决办法

目前nuxt社区已经注意到了此情况,在giget中提出了相关issue,而且有一个大佬已经提交了相关PR

PR opened 2 days ago
PR opened 2 days ago

可惜PR已经提出2天了,也没有相关回复,并入giget仓库不知道还要花多久。

这里我给出两个解决办法

(1)手动克隆模板仓库

其实,从之前我们也知道了,所谓的脚手架实际上就是拉去nuxt项目模板仓库中的文件。

所以我们只需要手动git clone即可。

代码语言:javascript
复制
git clone -b v3 https://github.com/nuxt/starter.git nuxt3-app

-b 是指定分支,目前最新的nuxt3在v3分支。

git clone
git clone

(2)使用支持https代理的degit

代码语言:javascript
复制
degit 'nuxt/starter#v3' nuxt3-app

#v3代表下载相应分支。

degit
degit

这里我更推荐使用degit,因为代码量少,而且degit拉取的项目中不包含模板仓库的.git目录。

思考:node程序如何支持代理

观察那位大佬提交的PR可以看到,他使用了https-proxy-agent实现代理。

PR detail
PR detail

这里对https-proxy-agent做了简单试用。

代码: https://stackblitz.com/edit/node-zwkzaa?embed=1&file=index.js

不适用代理的情况:

使用代理的情况:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年11月6日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 起因
  • 原因的确认
  • 临时解决办法
    • (1)手动克隆模板仓库
      • (2)使用支持https代理的degit
      • 思考:node程序如何支持代理
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档