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

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

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

    这两天被 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 模式,很舒适,再也没遇到各种网络问题了
    jiangwei2222
        13
    jiangwei2222  
       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 所在位置选择是否代理
    falcon05
        30
    falcon05  
       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
    再完美的开发环境也扛不住垃圾代码,再垃圾的开发环境也能扛住完美代码🐶
    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,难道都是前端开发?
    Spoience
        49
    Spoience  
       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   ·   实用小工具   ·   1291 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:31 · PVG 07:31 · LAX 15:31 · JFK 18:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.