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

nodejs 用户为什么这么爱变来变去呢?

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

    这似乎是前端开发人员的通病,喜欢变来变去,想一出是一出,完全不考虑连贯性。 cloudflare worker 创建项目一开始用的是 wrangler init, 后来改成了 wrangler create 了。改这么一个字也许对他来说符合它最新审美了,但是用户又要跟着他去记一个新的命令了。操!

    第 1 条附言  ·  49 天前
    打错了,新的命令叫 npm create xxx
    73 条回复    2024-04-22 14:26:32 +08:00
    chuck1in
        1
    chuck1in  
       50 天前
    是的,感觉将来还会继续变来变去。。。。
    jamesxu
        2
    jamesxu  
       50 天前 via Android   ❤️ 1
    前端项目过了半年不动,打包就容易出错,因为很多包小版本更新都经常不兼容😅
    street000
        3
    street000  
       50 天前   ❤️ 9
    这就是我们前端特有的 ship fast ,你们有这样的技术吗
    drymonfidelia
        4
    drymonfidelia  
       50 天前   ❤️ 1
    过几天改成 wrangler add
    VforVendetta
        5
    VforVendetta  
       50 天前   ❤️ 1
    再过几天改成 wrangler new
    wanniwa
        6
    wanniwa  
       50 天前
    这种真想不通,这种单词有啥好改的想不通。
    shizhibuyu2023
        7
    shizhibuyu2023  
       50 天前
    让我想起了 antfu/ni ,希望多一些这种工具
    jqtmviyu
        8
    jqtmviyu  
       50 天前   ❤️ 21
    | 作用 | npm | yarn | pnpm |
    | --------- | ----------------------- | -------------------- | -------------------- |
    | 安装 | npm install | yarn install | pnpm install |
    | 安装的简写 | npm i | yarn add | pnpm add |
    | 强制安装 | | | pnpm install --force |
    | 卸载 | npm unintall | yarn remove | pnpm remove |
    | 卸载简写 | npm rm | yarn rm | pnpm rm |
    | 全局安装 | npm i xxx --global/-g | yarn global add xxx | pnpm add -g xxx |
    | 安装包(生产模式) | npm i xxx --save/-S | yarn add xxx | pnpm add xxx |
    | 开发模式安装包 | npm i xxx --save-dev/-D | yarn add xxx -dev/-D | pnpm add -D xxx |
    | 检查更新 | npm outdated | | |
    | 更新 | npm update | yarn upgrade | pnpm update |
    | 全局更新 | npm update -g | yarn global upgrade | pnpm update -g |
    | 运行 | npm run xxx | yarn run | pnpm run xxx |
    | 清除缓存 | npm cache clean | yarn cache clean | |
    | 动态包执行 | npx xxx | yarn dlx xxx | pnpm dlx xxx |
    | 查看全局安装的包 | npm list -g --depth 0 | yarn global list | pnpm list -g |
    yxzblue
        9
    yxzblue  
       50 天前
    php 就没有这种问题,5.4 还能跑
    retrocode
        10
    retrocode  
       50 天前
    纯个人想法哈, 变来变去才有些活力, 一潭死水反而没什么意思了. 当然这个现象高情商叫百花齐放, 低情商称为群魔乱舞.哈哈哈
    lxzxl
        11
    lxzxl  
       50 天前
    lisongeee
        12
    lisongeee  
       50 天前   ❤️ 14
    我在官方文档中并没有看到你说的 wrangler create 一直都是 wrangler init

    https://developers.cloudflare.com/workers/wrangler/commands/

    同时我使用 `wrangler create` 后提示 `ERROR Unknown argument: create`



    同时我查看了旧版本 https://github.com/cloudflare/wrangler-legacy 也是 wrangler init

    好奇你说的 wrangler create 是从哪里来的?
    0o0O0o0O0o
        13
    0o0O0o0O0o  
       50 天前 via iPhone
    文档和源码里都是 init ,也没有找到 init 变 create 的 issue 或者 pr ,是 ChatGPT 说的 create 吗?
    lstz
        14
    lstz  
       50 天前 via Android
    又不是政企项目,人家才不考虑 backward compatibility 呢
    chanChristin
        15
    chanChristin  
       50 天前 via iPhone   ❤️ 5
    @lisongeee #12 有意思,lz 疑似虚空打靶,楼下为了嘲讽不加验证就跟着嘲讽。
    llej
        16
    llej  
       50 天前   ❤️ 1
    虽然楼主可能是虚空打靶,但我认为 js 的兼容性已经强到不可思议了,所以 js 用户更加的肆无忌惮。
    总结:利好 ts
    hefish
        17
    hefish  
       50 天前   ❤️ 1
    问题不大吧,反正 op 搞个几年,也转行了。。
    kneo
        18
    kneo  
       50 天前 via Android
    没用过这个工具。
    很多时候建一个新命令是为了不破坏旧命令的兼容性。新命令新行为,旧命令旧行为。
    真背锅我看也轮不到前端。你要不然看看 git 有多少命令?
    basncy
        19
    basncy  
       50 天前
    搭车问一下, 这个 wrangler 是什么神奇的单词? SageMaker, nodejs, Cloudflare Workers, 八杆子打不着的三个玩意儿, 都跟它扯得上五毛关系. 谁来科普一下它们之间的内在美?
    chesha1
        20
    chesha1  
       50 天前
    lz 记混了吧,创建项目:npm create cloudflare@latest xxx
    创建某个 cf 产品的新实例:npx wrangler xxx create xxx
    以上这两个才有 create
    wdssmq
        21
    wdssmq  
       50 天前
    新建的命令我不知道改没改,但是 wrangler publish 确实改 wrangler deploy 了
    Plumbiu
        22
    Plumbiu  
       50 天前
    版本不对锁版本呗
    BeiChuanAlex
        23
    BeiChuanAlex  
       50 天前   ❤️ 3
    前端项目,过了一个星期,我都不知道能不能编译过。。。。。
    arfaWong
        24
    arfaWong  
       50 天前
    @BeiChuanAlex 固定 node 版本、固定包版本,有啥编译不过的?
    jellyX
        25
    jellyX  
       50 天前
    OP 怎么还没回复 12 楼的呢? 我瓜子都买好啦
    theprimone
        26
    theprimone  
       50 天前
    刚好我最近也使用了 wrangler ,这次大改动官方做了比较完善的 TS 支持,已经很不错了,总比不管用户死活好多了 😂
    512357301
        27
    512357301  
       50 天前 via Android
    @retrocode 瞎几把变容易出一身冷汗的[doge]
    p412726700
        28
    p412726700  
       50 天前
    再过几天改成 wrangler build
    winterpotato
        29
    winterpotato  
       50 天前
    哈哈哈哈哈哈 nodejs 他们还会把 happy eyeball 弄坏了不修 感兴趣可以读这个 https://dmesg.app/nodejs-dual-stack.html
    seki
        30
    seki  
       50 天前
    这都能扯得上 nodejs 用户……

    假设真的有改动,这个命令根本不高频使用吧,都是用到的时候看文档就行了,根本不需要记。难道楼主是天天新建 cf worker 项目

    另外命令叫什么不是维护者自己愿意自己改的吗,不喜欢也可以考虑不升级新版,或者自己 fork 一份想用什么单词用什么单词
    suuuch
        31
    suuuch  
       49 天前
    打个岔,当年我一直吐槽 python 的包管理很垃圾,自从写了 node 项目之后,就不说了。。
    Dragonphy
        32
    Dragonphy  
       49 天前
    @jamesxu 我是每月至少更新一次,如果有测试那就无感升级了
    Dragonphy
        33
    Dragonphy  
       49 天前
    @jqtmviyu 你需要使用 `@antfu/ni`,`ni` = ‘npm install` | `yarn install` | `pnpm install` | `bun install`
    其他同理,见 https://github.com/antfu/ni
    Dragonphy
        34
    Dragonphy  
       49 天前
    @shizhibuyu2023
    unplugin ,不得不提 Nuxt 团队给前端 DX 做了好多贡献
    zfyStars
        35
    zfyStars  
       49 天前
    前端的确 变化太快了 大到框架小到库 总喜欢整点新花样 学习者就痛苦了
    zhsama
        36
    zhsama  
       49 天前
    @street000 真是 shishi 又 fafa 啊
    SayHelloHi
        37
    SayHelloHi  
       49 天前
    前端项目 N 年前的项目 可能 run 不起来 一片红
    pengtikui
        38
    pengtikui  
       49 天前
    OP 怎么还没回复 12 楼的呢? 我瓜子都买好啦
    horizon
        39
    horizon  
       49 天前
    @arfaWong #24
    确实
    不过要升级的时候就想哭了😭
    qeqv
        40
    qeqv  
       49 天前
    @yxzblue 虽然没有 OP 说的这种问题,但是别的版本问题也不少。5.4 不能无缝切 5.6 ,5.6 不能无缝切 7 。
    kenvix
        41
    kenvix  
       49 天前
    前端项目记得锁版本
    securityCoding
        42
    securityCoding  
       49 天前
    @jamesxu 不能依赖锁版本吗
    yangzzzzzz
        43
    yangzzzzzz  
       49 天前
    有些 cli 更新了版本 为了和旧版不冲突 就会改这个
    Huelse
        44
    Huelse  
       49 天前
    因为 js 太 tmd 灵活了,没有版本兼容考虑,自然而然地可以玩出更多花来。
    realJamespond
        45
    realJamespond  
       49 天前
    上面 run 不起来的都没 commit lock 文件?还有 node 版本也要写到 package ,json
    T3rryy
        46
    T3rryy  
       49 天前 via iPad
    这贴有意思
    sudoy
        47
    sudoy  
    OP
       49 天前
    @lxzxl
    @lisongeee
    @0o0O0o0O0o
    @chesha1
    @jellyX
    @pengtikui
    运行 wrangler init 会提示说 init 命令将在新的版本中被淘汰,新的命令叫 npm create xxx, 我打错成 wrangler create 了
    sudoy
        48
    sudoy  
    OP
       49 天前
    @chesha1 你说的对,应该是 npm create cloudflare@latest xxx 或者 npx wrangler xxx create xxx, 反正是警告说 wrangler init 不在支持了。WARNING The `init` command is no longer supported! Please use `npm create cloudflare\@2 --test` instead.
    xieqiqiang00
        50
    xieqiqiang00  
       49 天前 via Android
    lock 恒久远,版本永流传
    sudoy
        51
    sudoy  
    OP
       49 天前
    xuyang2
        52
    xuyang2  
       49 天前
    变来变去不是问题,
    没有编译器检查才是问题
    lisongeee
        53
    lisongeee  
       49 天前
    虽然但是,现在除了旧项目用 npm ,新项目基本都用 pnpm

    很多知名的开源库,如 vue/vite/next.js 都是用的 pnpm

    pnpm 不存在你说的这个 node_modules 问题
    sampeng
        54
    sampeng  
       49 天前
    我特别不能理解的就是 nodejs 的东西 2 年后,我 tmd 编译不出来。。。
    windychen0
        55
    windychen0  
       49 天前
    @sampeng 跟开发者经验和技术水平有关吧 ,前端门槛低良莠不齐是这样的了, 我初出茅庐的时候也不会关注这些问题,现在我不仅锁死版本,依赖库都是放自己私库管理的
    sechi
        56
    sechi  
       49 天前
    @sampeng 如果锁好了依赖版本和 node 版本,应该不会出现编译不过的情况吧🤔
    cokar
        57
    cokar  
       49 天前 via Android
    想问一下,cf 的 worker 适合做什么项目呢,我感觉很不方便
    sudoy
        58
    sudoy  
    OP
       49 天前
    @cokar 能快速开发 api 服务啊,自从前阵子发现它能直接导入 html 以后,我现在甚至前端渲染直接通过 worker 了。对我来说最重要的应该是免费吧,我大部分应用程序都通过 worker 部署,其中包括盈利的软件,外部成本就只有域名费了,维护都不用,关键是不用担心同时在线人数多了怎么办这类问题。可能是习惯问题,用惯了以后,啥东西都会看一下能不能通过 worker 来实现。
    sudoy
        59
    sudoy  
    OP
       49 天前
    @cokar 不好意思偏题了,我觉得 cf worker 适合做快速开发,省去租服务器、部署环境等工作环节。自从有了 AI 加持,对于轻量级运用,从买域名到产品上线最快两根烟功夫就能发布
    sudoy
        60
    sudoy  
    OP
       49 天前
    @basncy 字面意思就是牧马人,可能是作者就是喜欢这个词吧
    sudoy
        61
    sudoy  
    OP
       49 天前
    @lisongeee 连 npm 都 tm 变,真是服了,npm 变成 pnpm ,过几年怕是又要变成 ppnpm ,ppppnpm ,pppppppnpm
    lisongeee
        62
    lisongeee  
       49 天前
    @sudoy #61

    显然你没有搞清楚 npm 和 pnpm 的关系,它们有点类似 python 里 pipenv/poetry 的关系,各有优劣

    pnpm 是某群开发者对 npm 的某些机制不满意搞出来的,从我个人认知目前情况来看,pnpm 将会成为未来很长一段时间的主流

    > 过几年怕是又要变成 ppnpm

    既然你说是那就是吧,如果你对 npm 不满意,你完全可以 pull/fork 它,用你自己的知识修改让它符合你自己的需求即可,当然大多数人都是没能力改也懒得改就只能骂了,如果我连控制台错误都(看/搜索)不出来是哪个的问题,那我就只能捏着鼻子用了
    mouyase
        63
    mouyase  
       49 天前
    应该没有什么技术是一成不变的吧。哪怕是完美语言 php 呢,不也变成了 PHP: Hypertext Preprocessor 了。
    Adelell
        64
    Adelell  
       49 天前 via iPhone
    会变说明之前的有问题
    ZacT0ny
        65
    ZacT0ny  
       48 天前
    这也能扯到 nodejs 啊?看了下回复还能扯到 npm 的问题?太过抽象了,不了解清楚直接上论坛张口就来
    xwwsxp
        66
    xwwsxp  
       48 天前
    其实,感觉应该是很多前端喜欢追新,比如:package.json 中的包通常都是 vue^3.1.2 这类的,而不是 Vue-3.1.2 ,像 Vue 这种大型的项目可能还好点,有很多人进行测试,很多个人开发者直接不单元测试的,将功能实现了就进行打包了,等用户反馈了,然后继续修改,用户还需要清理本地的 npm 包。

    其实,Java 也是类似的;不过,Java 有大一统的 SpringBoot 相对而言,目前好点;毕竟,将许多包都封装为 starter 了,毕竟这些 starter 都是各个场景的,进行了大量的测试。
    WJYuan
        67
    WJYuan  
       48 天前
    我猜修改的原因是方便用户不需要再安装 wrangler 的 cli 只需要安装 node/npm 就可以初始化项目
    如果你喜欢 init ,也可以用 npm init ,npm create 是 npm init 的别名
    lshbosheth
        68
    lshbosheth  
       48 天前
    @sudoy 啊 。。。。。。。。你咋不说变成 yarn 了。。。。
    chuck1in
        69
    chuck1in  
       48 天前
    @sudoy 恐怕不止 npm 变了。现在也不用 node 了,新的都是用 bun
    thinkwei2012
        70
    thinkwei2012  
       48 天前
    npm -> yarn -> pnpm ->? bun
    sampeng
        71
    sampeng  
       48 天前
    @windychen0 开发水平差距太多。。锁死版本。。然后依赖库又不在私有库。。在私有库,naxus 又有默认超时时间。几个月不动的依赖库又没了。反正我每年都碰到一次。
    Tink
        72
    Tink  
       41 天前 via iPhone
    不折腾怎么有 kpi ?
    NullData
        73
    NullData  
       34 天前
    你这种情况我还真没见过,这样,你先百度搜索 oracle jdk ,然后点击第一个结果进官网下载个 jdk8
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   855 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:46 · PVG 05:46 · LAX 14:46 · JFK 17:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.