V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abiaqiou
V2EX  ›  Node.js

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

  •  
  •   abiaqiou · 195 天前 · 9049 次点击
    这是一个创建于 195 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    78 条回复    2021-11-17 09:14:24 +08:00
    gainsurier
        1
    gainsurier   195 天前
    不要想着一劳永逸的解决问题,一码归一码,网络问题买好的富强线路,clash 或者 surge 配置好全局规则就好了。
    lostberryzz
        2
    lostberryzz   195 天前   ❤️ 10
    为什么要追求完美?遇到问题解决不就好了,花不了多少时间。追求完美本身花的时间比解决问题多多了。

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

    以及,建议试一下 yarn 。
    ch2
        18
    ch2   195 天前
    网络问题最完美的办法还是用 pptp/l2tp/openvpn,挂了 vpn 连虚拟机里的流量都能转发,再也不用关心什么这个走不走那个走不走了
    source
        19
    source   195 天前
    提供一个思路,win10 较新的版本自带的 wsl2,把所有环境都装在里面,然后用 vscode 配合 wsl 插件开发
    flyingfz
        20
    flyingfz   195 天前
    你需要 维护一下 你的 .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   195 天前
    最完美的方法就是学会翻墙
    arischow
        22
    arischow   195 天前
    配各个软件还不如让自己的网络环境跟国际通用。
    linshiyouxiang
        23
    linshiyouxiang   195 天前
    网络问题 (便宜买个鸡厂)
    1. 透明代理旁路由 或 全局 vpn ,几乎不需要主机配置什么.不是跑满带宽 树莓派 3 也够用
    2. cfw 走 tun 模式,相差不大.

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

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

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

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

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

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

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

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

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

    几乎一劳永逸,但会有各种小问题
    wuqingdzx
        61
    wuqingdzx   194 天前
    代理不是银弹, 写个命令用于开启和关闭所有的代理
    ```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   194 天前
    没有银弹。但是可以把遇到的问题和解决方案记录下来,后面再遇到就能直接解决,如果解决得足够熟练了,就可以写个脚本解决重复配置的工作。
    ophunter
        63
    ophunter   194 天前
    @juzisang 这个具体啥意思?
    abersheeran
        64
    abersheeran   194 天前
    gitpod 最近上手,爽得很。PyPi 秒下,npm 没试但是料想也一样。
    hazardous
        65
    hazardous   194 天前
    解决问题就是学习的过程,虽然可以用机场,但是自己搭梯子更能学习到整套的互联网知识,在实践中提高是最佳的学习方式。
    juzisang
        66
    juzisang   194 天前
    @ophunter #63 除国内 IP 外的所有地址,全都走梯子
    ophunter
        67
    ophunter   194 天前
    @juzisang 明白了,谢谢
    q197
        68
    q197   194 天前
    @hazardous 技术是一方面,能有渠道买到低价好线路也是一方面。个人很难做到低价还线路好的,尤其是多条线路挂了一个换别的更难,除非加钱
    RockShake
        69
    RockShake   194 天前
    配置淘宝的源以后基本也没太大问题,有问题解决问题的过程不也是乐趣么
    kamal
        70
    kamal   194 天前
    abiaqiou
        71
    abiaqiou   194 天前
    @RockShake 就是有时候觉得这种问题是人为制造的, 是没必要的. 感觉挺憋屈的
    yiyi11
        72
    yiyi11   194 天前
    我有个疑问:“一劳永逸”是否正是“内卷”的原因?也许得到了当前的“一劳永逸”,很快就有新的麻烦来了。
    举个例子,可能不太恰当,spring 推出了 springboot 后,springboot 相对于传统的 spring 就是一定程度的“一劳永逸”,然后招人的标准至少到了 spirngcloud 。
    wtdd
        73
    wtdd   194 天前
    路由器配置全局商业 VPN
    w4ngzhen
        74
    w4ngzhen   193 天前
    npm install 的细节有很多,不仅仅是网络问题,还有 install 原生模块的时候,本地的编译环境问题。
    https://www.cnblogs.com/w4ngzhen/p/14086497.html 也可以参考下
    w4ngzhen
        75
    w4ngzhen   193 天前
    还有,使用 npm 的时候,多加--verbose,看细节
    RexG
        76
    RexG   147 天前
    nvm 管理 npm 版本,nrm 管理 npm 源,github 我是直接给 clash 添加了 rule,必须代理
    xcstream
        77
    xcstream   133 天前
    用了哪些包,
    反正我用 cnpm 几乎不会失败
    shunyue
        78
    shunyue   13 天前
    @grewer 请问 clashX 不会代理 npm install 吗? 怎么才能让 npm install 走 clashX 代理啊?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1081 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:46 · PVG 05:46 · LAX 13:46 · JFK 16:46
    ♥ Do have faith in what you're doing.