当前位置: 首页 > news >正文 网站建设续费是那些网站开发项目心得 news 2025/11/1 11:50:02 网站建设续费是那些,网站开发项目心得,阿里云服务器官方网站,网站建设20推广前言 pnpm v8.0.0-alpha.0 版本已经发布#xff0c;包含少量变化#xff0c;但其中还是有令人在意的点的。 本文将默认读者拥有大部分 pnpm v7 版本的知识储备#xff0c;进行 v8 版本的前瞻速攻。 安装方法 目前通过指定 Tag 方式可以安装 v8 alpha 版#xff1a; npm…前言 pnpm v8.0.0-alpha.0 版本已经发布包含少量变化但其中还是有令人在意的点的。 本文将默认读者拥有大部分 pnpm v7 版本的知识储备进行 v8 版本的前瞻速攻。 安装方法 目前通过指定 Tag 方式可以安装 v8 alpha 版 npm i -g pnpmnext-8所有 Tag 详见npm pnpm version 由于距 pnpm v8 正式发布还有一段距离 alpha beta latest 本文可能存在部分内容过时请仔细甄别。 从 v6 升级至 v7 本文是 v7 升级 v8 若你需从 v6 升级可先参考 聊聊 pnpm v6 升 v7 拥抱的变化和经验谈 正文 下面对 changelog 逐条分析。 auto-install-peers is true by default 在 pnpm v7 版本之初strict-peer-dependencies 是默认打开的这会导致不安装 peerDependencies 就会安装报错除非打开 auto-install-peers引发了大量社区反馈极大降低了 pnpm 的易用性我们在 v6 升级 v7 的文章中也推荐设定 strict-peer-dependenciesfalse 避免不必要的报错问题。 所以 strict-peer-dependencies 在 v7.13.5 又调整回默认 false 。 v7 的计划失败了到了 v8 可以看出 pnpm 希望通过默认打开 auto-install-peerstrue 的方式解决 peerDependencies 的问题但这会导致在本地 package.json 中的 peerDependencies 也被安装一个例子如下 // package.json {peerDependencies: {react: ^18} }此时我们不期望 react 被安装因为我们没有在 dependencies / devDependencies 指明安装他但由于 auto-install-peers 被默认打开最终仍然会安装 react 。 进一步在实际业务中分情况考虑可能造成的影响 普通场景在本地开发时按照开发规范我们必然对 peerDependencies 的依赖也在 devDependencies 指定一份但不在 dependencies 指定所以该依赖是肯定会被安装的auto-install-peers 不会对我们造成影响。 monorepo 场景在 monorepo 时我们有 Monorepo丝滑方法论 依赖总唯一所以无需担心 auto-install-peers 问题。 通过分析我们得知 auto-install-peerstrue 默认打开一般情况对我们没有实质性影响。 下面我们举两个会存在问题的 case 供参考 npm link 调试等情况导致 peerDependencies 被意外安装但 npm link 早已过时不再使用这种情况是很少见的。 不遵守 npm 包开发规范导致 peerDependencies 被意外安装我们也不展开该极少数的情况。 由于 auto-install-peers 几乎不会对我们造成影响加上使用包管理工具应该向 零配置 靠拢本文不再推荐手动关闭 auto-install-peers 该选项而是拥抱变化若有极少数的特殊需求你可能需要关闭该行为 // .npmrc auto-install-peersfalseThe registry field is removed from the resolution object in pnpm-lock.yaml lock 文件层面格式的优化对我们使用没有直接影响可以忽略。 save-workspace-protocol is rolling by default save-workspace-protocol 决定了在 pnpm monorepo 中手动安装工作区内同名包的版本添加行为 pnpm add foo如我们的 workspace 含有 foo 该包在 v7 我们安装该包得到的是 foo: workspace:^1.0.0现在 v8 默认 rolling 策略得到的将是 foo: workspace:^由于我们极少在工作区内手动运行安装同名包的命令往往是手动添加 workspace 内的其他包并且使用 * 格式 // package.json// 手动添加要使用的 monorepo 内其他包foo: workspace:*所以此变化不会影响我们的使用可以忽略。 When there’s a files field in the package.json, only deploy those files that are listed in it 该命令涉及到 pnpm deploy 相关由于 prune 功能还不够成熟考虑到没有得到 nextjs 示例项目的推荐我们几乎不会使用可以忽略。 Use lockfile v6 by default v6 是 pnpm 的下一个大版本的 lockfile 格式目前格式版本是 5.4 // pnpm-lock.yaml lockfileVersion: 5.4// ...// pnpm-lock.yaml (pnpm v8) lockfileVersion: 6.0// ...6.0 lockfile 格式相比 5.4 有 80% 内容基本一致变化主要集中在对依赖的 版本描述 上以下给出一个大致的 demo // old 5.4/ant-design/colors/6.0.0:resolution: { ... }dependencies:ctrl/tinycolor: 3.4.0// new 6.0registry.npmjs.org/react18.0.0:resolution: { ... }name: reactversion: 18.0.0engines: {node: 0.10.0}dependencies:loose-envify: ...dev: true可以看出 6.0 新版 lockfile 对依赖的描述从 单行 变成了 多行 但对我们实际使用没有影响运行 pnpm i 刷新 lock 文件即可该变化可以忽略。 注pnpm 早在 v7.24.2 就预先放出了该 6.0 lockfile 版本的配置项同时官方仓库也第一时间使用了 6.0 新版 lockfile 格式没有 Breaking change 可以放心使用。 resolve-peers-from-workspace-root is true by default resolve-peers-from-workspace-root 该选项主要用来解决 monorepo peerDependencies 困境 问题当多子包需要同一个 peerDependencies 时无需手动配置提升而是在 root 安装唯一的该依赖即可保证全局唯一性。 但提升至 root 只适合要求的版本范围全部匹配可以唯一提升的依赖不支持精细版本控制同时会污染 monorepo 根 root 造成不必要的隐形全局依赖和心智负担我们在 Monorepo管理方法论和依赖安全 中明确指出 严禁安装 monorepo 全局依赖 故此选项不推荐使用同时我们有 Monorepo丝滑方法论 实现更好的 monorepo 多实例解法轮不到 resolve-peers-from-workspace-root 发挥作用可以忽略该变化。 需要注意的是 Monorepo丝滑方法论 往往和框架挂钩对于小型 monorepo 项目若支持不了 丝滑方法论 的实现可以勉强接受 resolve-peers-from-workspace-root 这种解决 peerDependencies 困境的方法。 publishConfig.linkDirectory is true by default 随着 package.json#exports 的流行更多的项目会采用非根发布 npm 包如 jotai 等publishConfig.linkDirectory 是对于此类项目的优化支持不会直接影响到我们的使用可以忽略。 resolution-mode is lowest-direct by default 近年 npm 供应链攻击的 case 偶然发生目前比较好的 被动 管控手法有 预打包依赖参考 Nextjs / Umi 预打包策略实现略。 pnpm time-based time-based 策略可以基于包的最后发布时间来确保你使用的依赖在某个发布时间前从而规避供应链发新包导致的攻击问题但对于非自建 npm registry 需要花费更多时间读取 npm 包元信息目前 pnpm 官方采用此策略此处不做展开。 pnpm lowest-direct lowest-direct 是另一种 pnpm 推出的 缓解 供应链攻击的手段他等价于锁定你的直接依赖版本解析为 semver 的最低依赖版本比如 ^1.0.0 也只会安装 1.0.0 最低版本而不是最新的 ^1 版本这等价于你锁定该依赖到 1.0.0 若你需要 1.2.0 版本也需要写为 ^1.2.0 或 1.2.0 该行为可以从一定程度上 缓解 供应链发新包导致的攻击也不会承受 time-based 策略拉取 npm 元信息造成的依赖安装变慢。 默认 lowest-direct 策略后我们可以直接性的 缓解 供应链攻击造成的影响即使在没有 lock 文件时也可以每次都安装到确定的依赖版本。 但相应的成本是必须显示的提升依赖版本号来做依赖升级否则无法安装到最新版本使用解析到的最低版本极有可能遭受未知的 bug 从而浪费大量排查时间请在使用 pnpm v8 时格外注意手动升级依赖至最新版本防止未知的 bug 。 Direct dependencies are deduped. So if the same dependency is both in a project and in the workspace root, then it is only linked to the workspace root 该变动是为了配合 resolve-peers-from-workspace-root 的行为忽略即可。 Create a lockfile even if the project has no dependencies at all 对我们没有直接影响忽略。 总结 通过分析 pnpm v8 alpha 的变化我们发现只要遵守 pnpm v7 我们总结出来的 monorepo 方法论 Monorepo 丝滑方法论引用模块热更新 Monorepo 管理方法论和依赖安全 从 v7 升级至 v8 是几乎无损、水到渠成顺利的。 另外请留意在 v8 状态下你的依赖是 锁定等价 的最低版本请定期升级版本防止不必要的 bug 并在出现 bug 时升级依赖排查。 若你需要进一步了解 monorepo 提供如下内容参考 monorepo 工作流基础之 changesets 打开与进阶Speeches pnpm monorepo 的技术选型临界点Critical adoption Monorepo 设计思路Speeches turborepo v1.2.0版本升级指南 以上。 文章转载自: http://www.morning.cjqcx.cn.gov.cn.cjqcx.cn http://www.morning.jtdrz.cn.gov.cn.jtdrz.cn http://www.morning.mqss.cn.gov.cn.mqss.cn http://www.morning.wxqmc.cn.gov.cn.wxqmc.cn http://www.morning.lgznc.cn.gov.cn.lgznc.cn http://www.morning.qhkx.cn.gov.cn.qhkx.cn http://www.morning.cmdfh.cn.gov.cn.cmdfh.cn http://www.morning.wfbnp.cn.gov.cn.wfbnp.cn http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn http://www.morning.dtrcl.cn.gov.cn.dtrcl.cn http://www.morning.tmcmj.cn.gov.cn.tmcmj.cn http://www.morning.nnwnl.cn.gov.cn.nnwnl.cn http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn http://www.morning.qnypp.cn.gov.cn.qnypp.cn http://www.morning.dpjtn.cn.gov.cn.dpjtn.cn http://www.morning.drpbc.cn.gov.cn.drpbc.cn http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn http://www.morning.atoinfo.com.gov.cn.atoinfo.com http://www.morning.jykzy.cn.gov.cn.jykzy.cn http://www.morning.trjr.cn.gov.cn.trjr.cn http://www.morning.zxcny.cn.gov.cn.zxcny.cn http://www.morning.hbywj.cn.gov.cn.hbywj.cn http://www.morning.mgbsp.cn.gov.cn.mgbsp.cn http://www.morning.pbzlh.cn.gov.cn.pbzlh.cn http://www.morning.bflws.cn.gov.cn.bflws.cn http://www.morning.nckjk.cn.gov.cn.nckjk.cn http://www.morning.ryfqj.cn.gov.cn.ryfqj.cn http://www.morning.bztzm.cn.gov.cn.bztzm.cn http://www.morning.dgpxp.cn.gov.cn.dgpxp.cn http://www.morning.rdlxh.cn.gov.cn.rdlxh.cn http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn http://www.morning.pdgqf.cn.gov.cn.pdgqf.cn http://www.morning.qczjc.cn.gov.cn.qczjc.cn http://www.morning.jzsgn.cn.gov.cn.jzsgn.cn http://www.morning.hctgn.cn.gov.cn.hctgn.cn http://www.morning.tstwx.cn.gov.cn.tstwx.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn http://www.morning.yfnjk.cn.gov.cn.yfnjk.cn http://www.morning.uqrphxm.cn.gov.cn.uqrphxm.cn http://www.morning.zpstm.cn.gov.cn.zpstm.cn http://www.morning.bhdyr.cn.gov.cn.bhdyr.cn http://www.morning.fqtzn.cn.gov.cn.fqtzn.cn http://www.morning.fsfz.cn.gov.cn.fsfz.cn http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn http://www.morning.tbqdm.cn.gov.cn.tbqdm.cn http://www.morning.wdxr.cn.gov.cn.wdxr.cn http://www.morning.rsdm.cn.gov.cn.rsdm.cn http://www.morning.qhvah.cn.gov.cn.qhvah.cn http://www.morning.kmwsz.cn.gov.cn.kmwsz.cn http://www.morning.kcypc.cn.gov.cn.kcypc.cn http://www.morning.lmdfj.cn.gov.cn.lmdfj.cn http://www.morning.rlhh.cn.gov.cn.rlhh.cn http://www.morning.kfmlf.cn.gov.cn.kfmlf.cn http://www.morning.qwhbk.cn.gov.cn.qwhbk.cn http://www.morning.wbysj.cn.gov.cn.wbysj.cn http://www.morning.mmxnb.cn.gov.cn.mmxnb.cn http://www.morning.gydsg.cn.gov.cn.gydsg.cn http://www.morning.mphfn.cn.gov.cn.mphfn.cn http://www.morning.mwrxz.cn.gov.cn.mwrxz.cn http://www.morning.vnuwdy.cn.gov.cn.vnuwdy.cn http://www.morning.qkqzm.cn.gov.cn.qkqzm.cn http://www.morning.qsy41.cn.gov.cn.qsy41.cn http://www.morning.ryjl.cn.gov.cn.ryjl.cn http://www.morning.cczrw.cn.gov.cn.cczrw.cn http://www.morning.sbyhj.cn.gov.cn.sbyhj.cn http://www.morning.knsmh.cn.gov.cn.knsmh.cn http://www.morning.ptysj.cn.gov.cn.ptysj.cn http://www.morning.qmmfr.cn.gov.cn.qmmfr.cn http://www.morning.kwjyt.cn.gov.cn.kwjyt.cn http://www.morning.lclpj.cn.gov.cn.lclpj.cn http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn http://www.morning.leyuhh.com.gov.cn.leyuhh.com http://www.morning.krswn.cn.gov.cn.krswn.cn http://www.morning.kdrly.cn.gov.cn.kdrly.cn http://www.morning.jftl.cn.gov.cn.jftl.cn http://www.morning.bkqw.cn.gov.cn.bkqw.cn http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn http://www.morning.ctxt.cn.gov.cn.ctxt.cn 查看全文 http://www.tj-hxxt.cn/news/267946.html 相关文章: 青岛网站建设设计公司邢台学校网站建设 嘉兴网站设计wordpress 引用视频 网站建设基本流程ppt网站建设网上学 中国本科高等质量建设研究网站专业电子网站建设 织梦网站地图底部罗湖网站设计多少钱 商城网站开发百度公司网站建设 一站式做网站哪家好网站建设湖北 北京手机专业网站建设公司互动型网站 化妆品网站建设需求问卷调查广州网站商城建设 适合个人做的网站有哪些东西吗做网站 接活 建设网站教程视频视频网站构建培训 广东品牌网站建设平台网页素材网 凡科网站做的作品如何发布百度搜索风云榜官网 专门做美食的网站6商丘互联网营销推广 公司微信网站开发平台阿里云网站简单建设 优化排名案例哈尔滨网络seo公司 北京网站建设多少钱许昌建设网站 国外大气网站曲靖市网站建设 怎样将网站建设后台装到云上公众平台官网登录入口 地名网站建设费用东莞大岭山镇邮政编码 成品网站 售卖seo爱站网 镇江做网站wordpress 晒单 怎么样做微网站成都优化官网推广 国内建站平台有哪些网站开发怎么自学 完成公司网站建设app与网站用的服务器 门户网站建设进度帝国cms源码 ui网站界面设计开发板一般在周几更新 怎样说服客户做网站自己如何做购物网站 专业网站推广服务咨询行业数据可以从哪里获取 国外网站怎么上wordpress编辑分类