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

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

  •  
  •   sudoy · 2024-04-06 12:15:13 +08:00 · 12777 次点击
    这是一个创建于 369 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2024-04-07 17:01:58 +08:00
    打错了,新的命令叫 npm create xxx
    73 条回复    2024-04-22 14:26:32 +08:00
    chuck1in
        1
    chuck1in  
       2024-04-06 12:27:21 +08:00
    是的,感觉将来还会继续变来变去。。。。
    jamesxu
        2
    jamesxu  
       2024-04-06 12:42:03 +08:00 via Android   ❤️ 1
    前端项目过了半年不动,打包就容易出错,因为很多包小版本更新都经常不兼容😅
    street000
        3
    street000  
       2024-04-06 12:57:29 +08:00   ❤️ 9
    这就是我们前端特有的 ship fast ,你们有这样的技术吗
    drymonfidelia
        4
    drymonfidelia  
       2024-04-06 13:01:12 +08:00   ❤️ 1
    过几天改成 wrangler add
    VforVendetta
        5
    VforVendetta  
       2024-04-06 13:05:14 +08:00   ❤️ 1
    再过几天改成 wrangler new
    wanniwa
        6
    wanniwa  
       2024-04-06 13:06:40 +08:00
    这种真想不通,这种单词有啥好改的想不通。
    Xu3Xan89YsA7oP64
        7
    Xu3Xan89YsA7oP64  
       2024-04-06 13:12:03 +08:00
    让我想起了 antfu/ni ,希望多一些这种工具
    jqtmviyu
        8
    jqtmviyu  
       2024-04-06 14:36:58 +08:00   ❤️ 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  
       2024-04-06 14:46:13 +08:00
    php 就没有这种问题,5.4 还能跑
    retrocode
        10
    retrocode  
       2024-04-06 14:50:44 +08:00
    纯个人想法哈, 变来变去才有些活力, 一潭死水反而没什么意思了. 当然这个现象高情商叫百花齐放, 低情商称为群魔乱舞.哈哈哈
    lxzxl
        11
    lxzxl  
       2024-04-06 14:55:17 +08:00
    lisongeee
        12
    lisongeee  
       2024-04-06 15:04:36 +08:00   ❤️ 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  
       2024-04-06 15:07:55 +08:00 via iPhone
    文档和源码里都是 init ,也没有找到 init 变 create 的 issue 或者 pr ,是 ChatGPT 说的 create 吗?
    lstz
        14
    lstz  
       2024-04-06 15:13:22 +08:00 via Android
    又不是政企项目,人家才不考虑 backward compatibility 呢
    chanChristin
        15
    chanChristin  
       2024-04-06 15:19:14 +08:00 via iPhone   ❤️ 5
    @lisongeee #12 有意思,lz 疑似虚空打靶,楼下为了嘲讽不加验证就跟着嘲讽。
    llej
        16
    llej  
       2024-04-06 15:43:49 +08:00   ❤️ 1
    虽然楼主可能是虚空打靶,但我认为 js 的兼容性已经强到不可思议了,所以 js 用户更加的肆无忌惮。
    总结:利好 ts
    hefish
        17
    hefish  
       2024-04-06 16:24:07 +08:00   ❤️ 2
    问题不大吧,反正 op 搞个几年,也转行了。。
    kneo
        18
    kneo  
       2024-04-06 17:05:19 +08:00 via Android
    没用过这个工具。
    很多时候建一个新命令是为了不破坏旧命令的兼容性。新命令新行为,旧命令旧行为。
    真背锅我看也轮不到前端。你要不然看看 git 有多少命令?
    basncy
        19
    basncy  
       2024-04-06 17:28:55 +08:00
    搭车问一下, 这个 wrangler 是什么神奇的单词? SageMaker, nodejs, Cloudflare Workers, 八杆子打不着的三个玩意儿, 都跟它扯得上五毛关系. 谁来科普一下它们之间的内在美?
    chesha1
        20
    chesha1  
       2024-04-06 17:41:27 +08:00
    lz 记混了吧,创建项目:npm create cloudflare@latest xxx
    创建某个 cf 产品的新实例:npx wrangler xxx create xxx
    以上这两个才有 create
    wdssmq
        21
    wdssmq  
       2024-04-06 17:44:45 +08:00
    新建的命令我不知道改没改,但是 wrangler publish 确实改 wrangler deploy 了
    Plumbiu
        22
    Plumbiu  
       2024-04-06 19:03:31 +08:00
    版本不对锁版本呗
    BeiChuanAlex
        23
    BeiChuanAlex  
       2024-04-06 19:16:33 +08:00   ❤️ 3
    前端项目,过了一个星期,我都不知道能不能编译过。。。。。
    arfaWong
        24
    arfaWong  
       2024-04-06 21:19:13 +08:00
    @BeiChuanAlex 固定 node 版本、固定包版本,有啥编译不过的?
    jellyX
        25
    jellyX  
       2024-04-06 21:39:01 +08:00
    OP 怎么还没回复 12 楼的呢? 我瓜子都买好啦
    theprimone
        26
    theprimone  
       2024-04-06 21:46:47 +08:00
    刚好我最近也使用了 wrangler ,这次大改动官方做了比较完善的 TS 支持,已经很不错了,总比不管用户死活好多了 😂
    512357301
        27
    512357301  
       2024-04-07 00:30:55 +08:00 via Android
    @retrocode 瞎几把变容易出一身冷汗的[doge]
    p412726700
        28
    p412726700  
       2024-04-07 01:35:09 +08:00
    再过几天改成 wrangler build
    winterpotato
        29
    winterpotato  
       2024-04-07 02:22:56 +08:00
    哈哈哈哈哈哈 nodejs 他们还会把 happy eyeball 弄坏了不修 感兴趣可以读这个 https://dmesg.app/nodejs-dual-stack.html
    seki
        30
    seki  
       2024-04-07 02:38:59 +08:00
    这都能扯得上 nodejs 用户……

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

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

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

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

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

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

    > 过几年怕是又要变成 ppnpm

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

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