如何配置近乎完美的开发环境? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wrebjmns
V2EX    Node.js

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

  •  
  •   wrebjmns 2021-05-19 18:40:53 +08:00 16522 次点击
    这是一个创建于 1604 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    几乎一劳永逸,但会有各种小问题
    wuqingdzx
        61
    wuqingdzx  
       2021-05-20 11:23:00 +08:00
    代理不是银弹, 写个命令用于开启和关闭所有的代理
    ```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
        62
    zw1one  
       2021-05-20 14:03:34 +08:00
    没有银弹。但是可以把遇到的问题和解决方案记录下来,后面再遇到就能直接解决,如果解决得足够熟练了,就可以写个脚本解决重复配置的工作。
    ophunter
        63
    ophunter  
       2021-05-20 14:07:48 +08:00
    @juzisang 这个具体啥意思?
    abersheeran
        64
    abersheeran  
       2021-05-20 14:17:28 +08:00
    gitpod 最近上手,爽得很。PyPi 秒下,npm 没试但是料想也一样。
    hazardous
        65
    hazardous  
       2021-05-20 14:19:05 +08:00
    解决问题就是学习的过程,虽然可以用机场,但是自己搭梯子更能学习到整套的互联网知识,在实践中提高是最佳的学习方式。
    juzisang
        66
    juzisang  
       2021-05-20 14:48:01 +08:00
    @ophunter #63 除国内 IP 外的所有地址,全都走梯子
    ophunter
        67
    ophunter  
       2021-05-20 15:29:51 +08:00
    @juzisang 明白了,谢谢
    q197
        68
    q197  
       2021-05-20 15:30:37 +08:00
    @hazardous 技术是一方面,能有渠道买到低价好线路也是一方面。个人很难做到低价还线路好的,尤其是多条线路挂了一个换别的更难,除非加钱
    RockShake
        69
    RockShake  
       2021-05-20 16:57:40 +08:00
    配置淘宝的源以后基本也没太大问题,有问题解决问题的过程不也是乐趣么
    kamal
        70
    kamal  
       2021-05-20 17:18:39 +08:00
    wrebjmns
        71
    wrebjmns  
    OP
       2021-05-20 19:28:01 +08:00
    @RockShake 就是有时候觉得这种问题是人为制造的, 是没必要的. 感觉挺憋屈的
    yiyi11
        72
    yiyi11  
       2021-05-20 22:01:17 +08:00
    我有个疑问:“一劳永逸”是否正是“内卷”的原因?也许得到了当前的“一劳永逸”,很快就有新的麻烦来了。
    举个例子,可能不太恰当,spring 推出了 springboot 后,springboot 相对于传统的 spring 就是一定程度的“一劳永逸”,然后招人的标准至少到了 spirngcloud 。
    wtdd
        73
    wtdd  
       2021-05-20 23:18:15 +08:00
    路由器配置全局商业 VPN
    w4ngzhen
        74
    w4ngzhen  
       2021-05-21 11:27:51 +08:00
    npm install 的细节有很多,不仅仅是网络问题,还有 install 原生模块的时候,本地的编译环境问题。
    https://www.cnblogs.com/w4ngzhen/p/14086497.html 也可以参考下
    w4ngzhen
        75
    w4ngzhen  
       2021-05-21 11:28:19 +08:00
    还有,使用 npm 的时候,多加--verbose,看细节
    RexG
        76
    RexG  
       2021-07-06 15:48:51 +08:00
    nvm 管理 npm 版本,nrm 管理 npm 源,github 我是直接给 clash 添加了 rule,必须代理
    xcstream
        77
    xcstream  
       2021-07-20 16:48:19 +08:00
    用了哪些包,
    反正我用 cnpm 几乎不会失败
    shunyue
        78
    shunyue  
       2021-11-17 09:14:24 +08:00
    @grewer 请问 clashX 不会代理 npm install 吗? 怎么才能让 npm install 走 clashX 代理啊?
    grewer
        79
    grewer  
       2021-12-02 11:08:54 +08:00
    @shunyue 用 clashX pro 他和 clashX 不是同一个软件
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3583 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 00:06 PVG 08:06 LAX 17:06 JFK 20:06
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86