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

被 angular17 搞疯了

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

    这是一个大升级,但是对原来的 16 的项目非常不友好,我尝试 ng update ,遇到了很多奇葩的错误,后来干脆重新 ng new app ,在重新复制代码。然后发现了很多变化:

    1. 我 NAS 上映射的驱动器,无法使用了。比如把 NAS 的路径映射为 W:\,然后在 W:\下创建 app ,现在创建后无法执行,报错,这导致无法多机开发。

    2. 组件多了一个 standalone: true 的概念,这样以前可以直接用的组件,都需要按需 import 一下,其实这样挺好的,防止不必要的加载,但代码改起来累死了,尤其是 material.angular 。。。

    3. 以前的 app.module.ts 不见了,很多都需要自己改地方

    4. and much more....

    20 条回复    2024-01-11 13:42:37 +08:00
    abelmakihara
        1
    abelmakihara  
       357 天前
    那就非必要不升级(x
    orzorzorzorz
        2
    orzorzorzorz  
       357 天前   ❤️ 1
    这是很久没更过版本了吧,我 16 升 17 就改了版本号跟 tsconfig ,其它也没动。
    第一点不知道为啥会跟一个前端库有关,如果是路由问题可以加打包参数解决。第二点没办法。第三点可以加回去的,记得是在 angular.json 里改配置。
    newaccount
        3
    newaccount  
       357 天前   ❤️ 1
    啊? 16 到 17 基本无感升级的啊。换 standalone 也就跑一下 ng generate 再改改就差不多了
    就是切换成新的 application builder 有点烦,weixin-js-sdk 只能 amd ,得手工改改
    上周 ng-zorro-antd 17 和 spring boot 3.2 都发布了,整的跟过节似的
    cslive
        4
    cslive  
       357 天前
    不习惯 new 的时候加参数 standalone=false ,就变成 module 模式了
    chf007
        5
    chf007  
       357 天前   ❤️ 1
    这节点也是好久没人来发言了吧
    nzbin
        6
    nzbin  
       357 天前
    你这 16 的代码写的是有多烂。。。还有,升级出问题,git 回退不就行嘛。。。
    crysislinux
        7
    crysislinux  
       357 天前 via Android
    module 还是可以用的吧?
    mknightoy
        8
    mknightoy  
       357 天前
    突然看到这个词楞了一下,都快忘了这个框架了,不知道为什么有点感叹?
    rppig42
        9
    rppig42  
       357 天前
    有没有国内 Angular 讨论群组鸭
    credo123
        10
    credo123  
       357 天前
    我是 16 升到 17 的啊.已经 OK 了.基本还行啊.
    每次升级必备的配置文件全部检查一次,调了不少配置.不过还好.每次升级我都会创建个新项目,对比老项目检查一次.
    第 1 点,没这需求.也没太明白这需求.
    第 2 点,ngzorro 老早就建议这么搞,我跟着也全改了.
    第 3 点,我升级上来的这文件还在,继续用着.

    ng zorro 17 和 springboot 3.2 都升了, 测试通过,没啥大问题.跟上面 newaccount 说的一样,集中发布,整的跟过节似得.
    credo123
        11
    credo123  
       357 天前
    第二点我说错了哈.....
    duke807
        12
    duke807  
       357 天前
    所以,我现在只用 vanilla js
    想当年 angular 1.x 的时候,我就在用 angular ,2.x 也用了一段时间
    duke807
        13
    duke807  
       357 天前
    当年,N 多老项目由 callback hell 改成 async 操作,再配上 1.x 到 2.x 升级,才是真的要疯掉
    heyline
        14
    heyline  
       356 天前
    你们都不依赖低版本库的吗,我也想升级
    nzbin
        15
    nzbin  
       356 天前
    @rppig42 我这倒是有个 QQ 群:892182140
    wjpauli
        16
    wjpauli  
    OP
       354 天前
    你们觉得 16->17 无感升级,是因为你们仅仅在项目中使用了 ng update 。我建议你们直接用 17 创建一个新的项目,会发现项目的结构区别很大。
    wjpauli
        17
    wjpauli  
    OP
       354 天前
    @credo123 第 1 点,没这需求.也没太明白这需求.
    我来解释一下这个需求:就是几台电脑开发同一个项目,比如在台式机开发后,外出用笔记本继续开发,我只需要把项目保存在 NAS 的路径上就可以了,为了防止不理解//192.168.1.x 这样的 ip 地址,我特意把这个 NAS 目录映射成驱动器,给了盘符。但是到了 v17 ,ng new 创建的 project ,直接 ng server 是不可以的。现在只能又用上了 Synology Driver Client ,本机开发,同步 NAS 。
    parthenon2007
        18
    parthenon2007  
       330 天前
    一直没弄明白,standalone 组件的好处是什么?
    chnwillliu
        19
    chnwillliu  
       315 天前 via Android
    @parthenon2007 很多动态挂载的 component 就特别适合 standalone component 。

    你有个 modal service 可以接受任意 component 弹窗,或是要手动 lazy load 一个组件,你就会发现 component 必须装在 NgModule 里的设定这时候很累赘。

    ES6 dynamic import 这个 component 还不行,还要先拿它所在的 ngModule 的 ref , 搞什么 resolve ComponentFactory , 用 factory 再 create component 。
    parthenon2007
        20
    parthenon2007  
       315 天前
    @chnwillliu #19 据说还可以减少最终 bundle 的体积。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5129 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:33 · PVG 17:33 · LAX 01:33 · JFK 04:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.