wrebjmns
V2EX  ›  Node.js

如何配置近乎完美的开发环境?

  •  
  •   wrebjmns · May 19, 2021 · 18230 views
    This topic created in 1996 days ago, the information mentioned may be changed or developed.

    这两天被 npm install 各种报错搞疯了, 虽然后来通过设置 npm 源地址和 git 代理搞定了, 但这中间为了解决网络问题而非开发问题而浪费了不少时间.

    同时也想起了之前自学后端时安装 sqlite 的各种碰壁...

    V 友们, 请问目前最接近完美的开发环境是什么样的? 又如何配置呢?

    开发环境对于完美的定义: 配置后一劳永逸, 其余时间专注于码代码.

    79 replies  •  2021-12-02 11:08:54 +08:00
    gainsurier
    gainsurier
    May 19, 2021
    1
    不要想着一劳永逸的解决问题,一码归一码,网络问题买好的富强线路,clash 或者 surge 配置好全局规则就好了。
    lostberryzz
    lostberryzz
    May 19, 2021❤️10
    2
    为什么要追求完美?遇到问题解决不就好了,花不了多少时间。追求完美本身花的时间比解决问题多多了。

    一劳永逸?这个世界上就没有一劳永逸的事情。
    hitnutshell
    hitnutshell
    May 19, 2021
    3
    clash 上设置 rule 模式, 设置了 curlrc 和 zshrc(设置 git 代理和 https 代理), 应该就没有啥网络问题?
    wrebjmns
    wrebjmns
    OP
    May 19, 2021
    4
    @gainsurier 全局规则? 国内的也消耗流量吗? clash 或 surge 有没有切换比较智能的规则?
    Leviathann
    Leviathann
    May 19, 2021 via iPhone❤️1
    5
    能 docker 尽量 docker
    wrebjmns
    wrebjmns
    OP
    May 19, 2021
    6
    @lostberryzz 是啊. 所以近乎完美就好啦
    Ultraman
    Ultraman
    May 19, 2021 via Android
    7
    雇个助理
    yunyuyuan
    yunyuyuan
    May 19, 2021
    8
    用 yarn
    KyonLi
    KyonLi
    May 19, 2021 via iPhone
    9
    软路由,国内域名白名单模式,相当舒适
    molvqingtai
    molvqingtai
    May 19, 2021 via Android
    10
    你只是缺个好梯子
    learningman
    learningman
    May 19, 2021 via Android
    11
    网卡代理,NetchX 或者 Clash
    juzisang
    juzisang
    May 19, 2021
    12
    软路由,绕过大陆 IP 模式,很舒适,再也没遇到各种网络问题了
    AutumnVerse
    AutumnVerse
    May 19, 2021 via Android
    13
    软路由+1
    swulling
    swulling
    May 19, 2021
    14
    @abiaqiou 代理开启 GEOI_,CN 模式,大陆之外的 ip 段统统走代理即可
    hsfzxjy
    hsfzxjy
    May 19, 2021 via Android
    15
    proxychains 一把梭
    SaigyoujiYuyuko
    SaigyoujiYuyuko
    May 19, 2021
    16
    linux x86 软路由 + 透明代理
    Elethom
    Elethom
    May 19, 2021❤️1
    17
    给你截两行配置:
    export all_proxy=http://localhost:23333
    alias pxn='all_proxy='
    规则用 Clash 管理,pxn 临时关闭代理。

    以及,建议试一下 yarn 。
    ch2
    ch2
    May 19, 2021
    18
    网络问题最完美的办法还是用 pptp/l2tp/openvpn,挂了 vpn 连虚拟机里的流量都能转发,再也不用关心什么这个走不走那个走不走了
    source
    source
    May 19, 2021
    19
    提供一个思路,win10 较新的版本自带的 wsl2,把所有环境都装在里面,然后用 vscode 配合 wsl 插件开发
    flyingfz
    flyingfz
    May 19, 2021
    20
    你需要 维护一下 你的 .npmrc 文件 , 例如:
    registry=https://registry.npm.taobao.org/
    node_sqlite3_binary_host_mirror=http://npm.taobao.org/mirrors

    更多模块的设置,参考:
    https://npm.taobao.org/mirrors/
    yitingbai
    yitingbai
    May 19, 2021
    21
    最完美的方法就是学会翻墙
    arischow
    arischow
    May 19, 2021
    22
    配各个软件还不如让自己的网络环境跟国际通用。
    linshiyouxiang
    linshiyouxiang
    May 19, 2021
    23
    网络问题 (便宜买个鸡厂)
    1. 透明代理旁路由 或 全局 vpn ,几乎不需要主机配置什么.不是跑满带宽 树莓派 3 也够用
    2. cfw 走 tun 模式,相差不大.

    开发环境
    1. vscode 使用远程容器,每个语言都能很好的隔离,配置一次,全平台运行(有坑.例如 wsl2 的 io 问题)
    2. 不用 vscode ,上虚拟机?配合快照,代码本地存,映射到虚拟机.效果也不会太差.
    3. 其他,请赐教 //
    Donahue
    Donahue
    May 19, 2021
    24
    旁路由+1,贼好用贼舒服,配置简单价格便宜,用下来已经离不开了。
    给个推荐列表:我家云,贝壳云,r2s, 树莓派 3b(百兆),树莓派 4b,
    直接对接国际网络,比用客户端软件方便~
    lscho
    lscho
    May 19, 2021
    25
    开个梯子就近乎完美了。

    配置开发环境时有 90%的原因都是网络的问题。
    chaleaoch
    chaleaoch
    May 19, 2021
    26
    docker 是个不错的选择.
    littlewing
    littlewing
    May 19, 2021
    27
    完美了还要你干嘛
    alalida
    alalida
    May 19, 2021 via Android
    28
    软路由 /tun + vscode docker 模式或者 windows 运行 linux 那个
    israinbow
    israinbow
    May 20, 2021
    29
    @abiaqiou 只能订阅别人做的绕过规则, 或者通过 p 所在位置选择是否代理
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    May 20, 2021 via iPhone❤️1
    30
    100 来块买个 N1,刷个 openwrt,打开新世界大门
    AkideLiu
    AkideLiu
    May 20, 2021 via iPhone
    31
    肉身翻墙
    lemontv
    lemontv
    May 20, 2021
    32
    肉翻解决
    MegrezZhu
    MegrezZhu
    May 20, 2021
    33
    最完美的当然是找一个专门负责维护开发环境的小组啦……
    OHyn
    OHyn
    May 20, 2021
    34
    代理挪路由上。
    ericgui
    ericgui
    May 20, 2021 via iPhone
    35
    你肉身去墙外,就好了
    xarthur
    xarthur
    May 20, 2021 via iPhone
    36
    肉翻
    xuanbg
    xuanbg
    May 20, 2021❤️1
    37
    没有的,不存在的,别想🍑了。找到问题的关键,解决它就行了。
    free9fw
    free9fw
    May 20, 2021
    38
    前端就是折腾
    akcode
    akcode
    May 20, 2021
    39
    国内编程语言入门,不是先扶墙,再 hello word 么
    THESDZ
    THESDZ
    May 20, 2021
    40
    1.能依赖 docker 的,尽量使用 docker 解决,比如各种软件 /中间件 /富强工具等,甚至于打包,编译等
    2.绝大多数的网络问题都有镜像(换源)解决
    3.良好的命令规范(无特殊字符,大小写统一,无中文等)
    4.遇到问题,提炼原因和关键字,善用搜索引擎
    THESDZ
    THESDZ
    May 20, 2021
    41
    @THESDZ #39 补充一点,利用插件,软件等,自动同步自己的配置,脚本等
    qwerthhusn
    qwerthhusn
    May 20, 2021
    42
    再完美的开发环境也扛不住垃圾代码,再垃圾的开发环境也能扛住完美代码🐶
    doublechenpaul
    doublechenpaul
    May 20, 2021
    43
    买一张到西雅图的机票
    christin
    christin
    May 20, 2021 via iPhone
    44
    docker
    yarn
    或者 vs code remote 所有的东西都放在服务器上 到哪里都连服务器就好了
    lamesbond
    lamesbond
    May 20, 2021
    45
    开发环境的大部分问题,买个好的线路,路由器配好规则就能解决
    code4you
    code4you
    May 20, 2021
    46
    1.梯子

    2.surge 或者 clash 开启增强模式

    90%的问题都可以解决
    zhuweiyou
    zhuweiyou
    May 20, 2021
    47
    安装 yarn
    yarn global add yrm
    yrm use taobao
    ZeroDu
    ZeroDu
    May 20, 2021
    48
    每次这种开发工具、开发工具类的帖子,回复里面大部分都提到了 vs code,难道都是前端开发?
    DejavuMoe
    DejavuMoe
    May 20, 2021 via Android
    49
    Clash 规则模式就行,git npm 走代理
    https://spoience.com/articles/git-npm-proxy.html
    cs419
    cs419
    May 20, 2021
    50
    网络问题: 把梯子装在路由器中(首推软路由) 设置流量规则

    开发环境问题: 高配电脑多个虚拟机(目前: 双路 x99 + 2680v3 *2 ),基于虚拟机进行环境隔离
    nodejs java python go 各一套
    qq 浏览器 各一套
    mysql 之类 尽量用 docker
    edk24
    edk24
    May 20, 2021
    51
    当你解决的问题多了, 有经验了。 什么问题都能快速的迎刃而解。喜欢 linux 开发环境是因为环境配置简单 一般自己能想到的东西, 几乎都有工具可以下载使用。 不像 windows 那么蹩脚

    PHP 环境? 一条命令就安装了开发环境, 无需配置环境变量
    java 环境?一条命令就安装了。在 windows 搞就麻烦很,linux 倒是比较统一, 反正就一个安装命令

    搞编程的最好还是自己搞个小飞机, 毕竟 github npm composer go 各种包工具都很慢或者不能用, 想省事就用小飞机
    ThisDay
    ThisDay
    May 20, 2021
    52
    @juzisang 这个问题很大,我目前发现的就有美柚以及哈罗摩托的流量会被绕到国外去,哈罗摩托还好只是慢一点,美柚直接所有网络请求全挂掉
    ALVC666
    ALVC666
    May 20, 2021
    53
    yarn

    其实大部分都是网络问题
    kensoz
    kensoz
    May 20, 2021❤️1
    54
    我觉得问题是复杂的环境配置,
    人在国外没有网络问题,但是这个环境配置每次都需要很久,我的想法是:

    1.能复制备份的配置都备份,有条件可以同步,尤其是 vscode 的设置,eslint 配置文件等等
    2.最好可以理解配置的含义,自定义配置,虽然这样初期很浪费时间,但是一旦懂了以后就不是问题
    3.如果时间仓促,上网查询。一定要按最新时间排序,可以最好去外网,github 可以查项目在项目中找到配置文件
    4.对于一些设置比如公司内部约定俗成的配置最好记笔记,不会的问
    5.如果没有什么可以参考的东西,官方文件也少的可怜,只能寄希望于自己的运气了
    sandman511
    sandman511
    May 20, 2021
    55
    V2rayN 与网站买的节点 会有安全问题嘛
    cz5424
    cz5424
    May 20, 2021 via iPhone
    56
    最完美的是代码自己写代码,配啥环境
    grewer
    grewer
    May 20, 2021
    57
    clashX pro 自动代理到终端, 规则也可以自己写
    Stain5
    Stain5
    May 20, 2021
    58
    肉翻
    Starlink
    合法 IPLC
    bleaker
    bleaker
    May 20, 2021
    59
    1. 肉翻
    2. 有部门提供统一配置环境的的 docker image,以前是 vagrant
    WhoMercy
    WhoMercy
    May 20, 2021
    60
    linux + proxy

    几乎一劳永逸,但会有各种小问题
    wuqingdzx
    wuqingdzx
    May 20, 2021
    61
    代理不是银弹, 写个命令用于开启和关闭所有的代理
    ```sh
    export proxy_host=127.0.0.1
    export proxy_port=9119
    export proxy_url="http://$proxy_host:$proxy_port"
    export switch_proxy=0


    function pp(){
    if [ $switch_proxy = 0 ]; then
    export http_proxy="$proxy_host:$proxy_port"
    export https_proxy="$proxy_host:$proxy_port"
    export ftp_proxy="$proxy_host:$proxy_port"

    pear config-set http_proxy "$proxy_url"

    npm config set http_proxy="$proxy_url"
    npm config set https_proxy="$proxy_url"
    npm config set proxy="$proxy_url"

    switch_proxy=1
    echo -e "梯子模式"
    else
    unset http_proxy
    unset https_proxy
    unset ftp_proxy

    pear config-set http_proxy ""

    npm config delete http_proxy
    npm config delete https_proxy
    npm config delete proxy

    switch_proxy=0
    echo -e "和谐模式"
    fi
    }
    ```
    zw1one
    zw1one
    May 20, 2021
    62
    没有银弹。但是可以把遇到的问题和解决方案记录下来,后面再遇到就能直接解决,如果解决得足够熟练了,就可以写个脚本解决重复配置的工作。
    ophunter
    ophunter
    May 20, 2021
    63
    @juzisang 这个具体啥意思?
    abersheeran
    abersheeran
    May 20, 2021
    64
    gitpod 最近上手,爽得很。PyPi 秒下,npm 没试但是料想也一样。
    hazardous
    hazardous
    May 20, 2021
    65
    解决问题就是学习的过程,虽然可以用机场,但是自己搭梯子更能学习到整套的互联网知识,在实践中提高是最佳的学习方式。
    juzisang
    juzisang
    May 20, 2021
    66
    @ophunter #63 除国内 IP 外的所有地址,全都走梯子
    ophunter
    ophunter
    May 20, 2021
    67
    @juzisang 明白了,谢谢
    q197
    q197
    May 20, 2021
    68
    @hazardous 技术是一方面,能有渠道买到低价好线路也是一方面。个人很难做到低价还线路好的,尤其是多条线路挂了一个换别的更难,除非加钱
    Crixs
    Crixs
    May 20, 2021
    69
    配置淘宝的源以后基本也没太大问题,有问题解决问题的过程不也是乐趣么
    kamal
    kamal
    May 20, 2021
    70
    wrebjmns
    wrebjmns
    OP
    May 20, 2021
    71
    @RockShake 就是有时候觉得这种问题是人为制造的, 是没必要的. 感觉挺憋屈的
    yiyi11
    yiyi11
    May 20, 2021
    72
    我有个疑问:“一劳永逸”是否正是“内卷”的原因?也许得到了当前的“一劳永逸”,很快就有新的麻烦来了。
    举个例子,可能不太恰当,spring 推出了 springboot 后,springboot 相对于传统的 spring 就是一定程度的“一劳永逸”,然后招人的标准至少到了 spirngcloud 。
    wtdd
    wtdd
    May 20, 2021
    73
    路由器配置全局商业 VPN
    zhenwang
    zhenwang
    May 21, 2021
    74
    npm install 的细节有很多,不仅仅是网络问题,还有 install 原生模块的时候,本地的编译环境问题。
    https://www.cnblogs.com/w4ngzhen/p/14086497.html 也可以参考下
    zhenwang
    zhenwang
    May 21, 2021
    75
    还有,使用 npm 的时候,多加--verbose,看细节
    RexG
    RexG
    Jul 6, 2021
    76
    nvm 管理 npm 版本,nrm 管理 npm 源,github 我是直接给 clash 添加了 rule,必须代理
    xcstream
    xcstream
    Jul 20, 2021
    77
    用了哪些包,
    反正我用 cnpm 几乎不会失败
    shunyue
    shunyue
    Nov 17, 2021
    78
    @grewer 请问 clashX 不会代理 npm install 吗? 怎么才能让 npm install 走 clashX 代理啊?
    grewer
    grewer
    Dec 2, 2021
    79
    @shunyue 用 clashX pro 他和 clashX 不是同一个软件
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1294 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 393ms · UTC 19:26 · PVG 03:26 · LAX 11:26 · JFK 14:26
    ♥ Do have faith in what you're doing.