码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Nuxt脚手架nuxi初始化失败原因&解决方法


    起因

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

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

    npx nuxi init nuxt3-app
    
    • 1

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

    脚手架报错

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

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

    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对比

    临时解决办法

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

    PR opened 2 days ago

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

    这里我给出两个解决办法

    (1)手动克隆模板仓库

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

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

    git clone -b v3 https://github.com/nuxt/starter.git nuxt3-app
    
    • 1

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

    git clone

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

    degit 'nuxt/starter#v3' nuxt3-app
    
    • 1

    #v3代表下载相应分支。

    degit

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

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

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

    PR detail

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

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

    不适用代理的情况:

    使用代理的情况:

  • 相关阅读:
    java-php-net-python-球鞋购物网站计算机毕业设计程序
    linux系统通过docker安装python的jieba,如何找到jieba路径替换分词文件
    【论】Balancing bike sharing systems with constraint programming
    前端构建但没有更新
    梦开始的地方 —— C语言内存函数memcpy-memmove-memset(使用+模拟实现)
    10.22 校招 实习 内推 面经
    Leveldb学习笔记:leveldb的使用与原理探究
    2024 年如何复用 ChatGPT 从头开始​​快速学习 Python
    电压跌落检测
    CiscoCUCM安装初始化
  • 原文地址:https://blog.csdn.net/Cypher_X/article/details/127719618
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号