Nodejs 用户为什么这么爱变来变去呢?
这似乎是前端开发人员的通病,喜欢变来变去,想一出是一出,完全不考虑连贯性。
cloudflare worker 创建项目一开始用的是 wrangler init
, 后来改成了 wrangler create
了。改这么一个字也许对他来说符合它最新审美了,但是用户又要跟着他去记一个新的命令了。操!
Nodejs 用户为什么这么爱变来变去呢?
是的,感觉将来还会继续变来变去。。。。
这就是我们前端特有的 ship fast ,你们有这样的技术吗
过几天改成 wrangler add
再过几天改成 wrangler new
这种真想不通,这种单词有啥好改的想不通。
让我想起了 antfu/ni ,希望多一些这种工具
| 作用 | 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 |
php 就没有这种问题,5.4 还能跑
纯个人想法哈, 变来变去才有些活力, 一潭死水反而没什么意思了. 当然这个现象高情商叫百花齐放, 低情商称为群魔乱舞.哈哈哈
搜了下文档,不还是 init 吗?
https://developers.cloudflare.com/workers/wrangler/commands/
我在官方文档中并没有看到你说的 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 是从哪里来的?
又不是政企项目,人家才不考虑 backward compatibility 呢
#12 有意思,lz 疑似虚空打靶,楼下为了嘲讽不加验证就跟着嘲讽。
虽然楼主可能是虚空打靶,但我认为 js 的兼容性已经强到不可思议了,所以 js 用户更加的肆无忌惮。
总结:利好 ts
问题不大吧,反正 op 搞个几年,也转行了。。
没用过这个工具。
很多时候建一个新命令是为了不破坏旧命令的兼容性。新命令新行为,旧命令旧行为。
真背锅我看也轮不到前端。你要不然看看 git 有多少命令?
搭车问一下, 这个 wrangler 是什么神奇的单词? SageMaker, nodejs, Cloudflare Workers, 八杆子打不着的三个玩意儿, 都跟它扯得上五毛关系. 谁来科普一下它们之间的内在美?
lz 记混了吧,创建项目:npm create cloudflare@latest xxx
创建某个 cf 产品的新实例:npx wrangler xxx create xxx
以上这两个才有 create
新建的命令我不知道改没改,但是 wrangler publish 确实改 wrangler deploy 了
版本不对锁版本呗
前端项目,过了一个星期,我都不知道能不能编译过。。。。。
固定 node 版本、固定包版本,有啥编译不过的?
OP 怎么还没回复 12 楼的呢? 我瓜子都买好啦
刚好我最近也使用了 wrangler ,这次大改动官方做了比较完善的 TS 支持,已经很不错了,总比不管用户死活好多了 😂
瞎几把变容易出一身冷汗的[doge]
再过几天改成 wrangler build
哈哈哈哈哈哈 nodejs 他们还会把 happy eyeball 弄坏了不修 感兴趣可以读这个 https://dmesg.app/nodejs-dual-stack.html
这都能扯得上 nodejs 用户……
假设真的有改动,这个命令根本不高频使用吧,都是用到的时候看文档就行了,根本不需要记。难道楼主是天天新建 cf worker 项目
另外命令叫什么不是维护者自己愿意自己改的吗,不喜欢也可以考虑不升级新版,或者自己 fork 一份想用什么单词用什么单词
打个岔,当年我一直吐槽 python 的包管理很垃圾,自从写了 node 项目之后,就不说了。。
我是每月至少更新一次,如果有测试那就无感升级了
你需要使用 antfu/ni
,ni
= ‘npm install|
yarn install|
pnpm install|
bun install`
其他同理,见 https://github.com/antfu/ni
unplugin ,不得不提 Nuxt 团队给前端 DX 做了好多贡献
前端的确 变化太快了 大到框架小到库 总喜欢整点新花样 学习者就痛苦了
真是 shishi 又 fafa 啊
前端项目 N 年前的项目 可能 run 不起来 一片红
OP 怎么还没回复 12 楼的呢? 我瓜子都买好啦
#24
确实
不过要升级的时候就想哭了😭
虽然没有 OP 说的这种问题,但是别的版本问题也不少。5.4 不能无缝切 5.6 ,5.6 不能无缝切 7 。
不能依赖锁版本吗
有些 cli 更新了版本 为了和旧版不冲突 就会改这个
因为 js 太 tmd 灵活了,没有版本兼容考虑,自然而然地可以玩出更多花来。
上面 run 不起来的都没 commit lock 文件?还有 node 版本也要写到 package ,json
这贴有意思
你说的对,应该是 npm create cloudflarelatest xxx 或者 npx wrangler xxx create xxx, 反正是警告说 wrangler init 不在支持了。WARNING The init
command is no longer supported! Please use npm create cloudflare\2 --test
instead.
lock 恒久远,版本永流传
变来变去不是问题,
没有编译器检查才是问题
虽然但是,现在除了旧项目用 npm ,新项目基本都用 pnpm
很多知名的开源库,如 vue/vite/next.js 都是用的 pnpm
pnpm 不存在你说的这个 node_modules 问题
我特别不能理解的就是 nodejs 的东西 2 年后,我 tmd 编译不出来。。。
跟开发者经验和技术水平有关吧 ,前端门槛低良莠不齐是这样的了, 我初出茅庐的时候也不会关注这些问题,现在我不仅锁死版本,依赖库都是放自己私库管理的
如果锁好了依赖版本和 node 版本,应该不会出现编译不过的情况吧🤔
想问一下,cf 的 worker 适合做什么项目呢,我感觉很不方便
能快速开发 api 服务啊,自从前阵子发现它能直接导入 html 以后,我现在甚至前端渲染直接通过 worker 了。对我来说最重要的应该是免费吧,我大部分应用程序都通过 worker 部署,其中包括盈利的软件,外部成本就只有域名费了,维护都不用,关键是不用担心同时在线人数多了怎么办这类问题。可能是习惯问题,用惯了以后,啥东西都会看一下能不能通过 worker 来实现。
不好意思偏题了,我觉得 cf worker 适合做快速开发,省去租服务器、部署环境等工作环节。自从有了 AI 加持,对于轻量级运用,从买域名到产品上线最快两根烟功夫就能发布
字面意思就是牧马人,可能是作者就是喜欢这个词吧
连 npm 都 tm 变,真是服了,npm 变成 pnpm ,过几年怕是又要变成 ppnpm ,ppppnpm ,pppppppnpm
#61
显然你没有搞清楚 npm 和 pnpm 的关系,它们有点类似 python 里 pipenv/poetry 的关系,各有优劣
pnpm 是某群开发者对 npm 的某些机制不满意搞出来的,从我个人认知目前情况来看,pnpm 将会成为未来很长一段时间的主流
> 过几年怕是又要变成 ppnpm
既然你说是那就是吧,如果你对 npm 不满意,你完全可以 pull/fork 它,用你自己的知识修改让它符合你自己的需求即可,当然大多数人都是没能力改也懒得改就只能骂了,如果我连控制台错误都(看/搜索)不出来是哪个的问题,那我就只能捏着鼻子用了
应该没有什么技术是一成不变的吧。哪怕是完美语言 php 呢,不也变成了 PHP: Hypertext Preprocessor 了。
会变说明之前的有问题
这也能扯到 nodejs 啊?看了下回复还能扯到 npm 的问题?太过抽象了,不了解清楚直接上论坛张口就来
其实,感觉应该是很多前端喜欢追新,比如:package.json 中的包通常都是 vue^3.1.2 这类的,而不是 Vue-3.1.2 ,像 Vue 这种大型的项目可能还好点,有很多人进行测试,很多个人开发者直接不单元测试的,将功能实现了就进行打包了,等用户反馈了,然后继续修改,用户还需要清理本地的 npm 包。
其实,Java 也是类似的;不过,Java 有大一统的 SpringBoot 相对而言,目前好点;毕竟,将许多包都封装为 starter 了,毕竟这些 starter 都是各个场景的,进行了大量的测试。
我猜修改的原因是方便用户不需要再安装 wrangler 的 cli 只需要安装 node/npm 就可以初始化项目
如果你喜欢 init ,也可以用 npm init ,npm create 是 npm init 的别名
啊 。。。。。。。。你咋不说变成 yarn 了。。。。
恐怕不止 npm 变了。现在也不用 node 了,新的都是用 bun
npm -> yarn -> pnpm ->? bun
开发水平差距太多。。锁死版本。。然后依赖库又不在私有库。。在私有库,naxus 又有默认超时时间。几个月不动的依赖库又没了。反正我每年都碰到一次。
不折腾怎么有 kpi ?
你这种情况我还真没见过,这样,你先百度搜索 oracle jdk ,然后点击第一个结果进官网下载个 jdk8
在Node.js社区中,“变来变去”的现象通常指的是其快速迭代和不断变化的特性,这主要由以下几个因素驱动:
-
技术快速发展:Node.js作为一个开源项目,其生态系统的发展速度极快。新特性和工具的不断涌现,促使开发者不断尝试和采用最新的技术栈。
-
版本更新频繁:Node.js遵循语义化版本控制(Semantic Versioning),主版本号的提升往往伴随着重大变更。例如,Node.js 8到10的版本升级中,引入了Async/Await等关键特性,极大地提升了开发效率。
-
社区驱动:Node.js的开源特性意味着其发展方向和功能特性在很大程度上由社区决定。社区的需求和反馈会直接影响Node.js的迭代方向。
-
依赖库更新:Node.js项目通常会依赖大量的第三方库,这些库的更新也会促使项目本身进行相应调整。
以下是一个简单的Node.js版本升级示例,展示了如何从旧版本迁移到新版本,并使用Async/Await特性:
// Node.js 8 及以下版本
function fetchData(callback) {
// 使用回调函数
}
// Node.js 10 及以上版本
async function fetchData() {
try {
const data = await someAsyncFunction();
console.log(data);
} catch (error) {
console.error(error);
}
}
综上所述,Node.js用户“变来变去”并非出于随意,而是为了更好地适应技术的发展和社区的需求。