V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
maiyasu
V2EX  ›  问与答

如何看待前端项目初始化时大量的警告提示?

  •  
  •   maiyasu · 2023-08-23 12:06:38 +08:00 · 2875 次点击
    这是一个创建于 461 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我准备开发一个系统,看了一圈,打算用 Ant Desig Pro 来做前端框架。从安装到项目起来,一大坨的各种警告,让我的热情血条已经-50%了。

    首先是安装脚手架, 许多警告。

     sudo npm i @ant-design/pro-cli -g
    [sudo] password for maiyasu: 
    npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
    npm WARN deprecated [email protected]: This functionality has been moved to @npmcli/fs
    npm WARN deprecated [email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
    npm WARN deprecated @stylelint/[email protected]: Use the original unforked package instead: postcss-markdown
    npm WARN deprecated [email protected]: this library is no longer supported
    npm WARN deprecated [email protected]: 0.x is no longer supported. Please upgrade to 4.x or higher.
    npm WARN deprecated [email protected]: 0.x is no longer supported. Please upgrade to 3.x or higher.
    npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
    npm WARN deprecated @stylelint/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
    npm WARN deprecated [email protected]: 1.x is no longer supported. Please upgrade to 6.x or higher.
    npm WARN deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
    
    added 223 packages, removed 23 packages, and changed 986 packages in 3m
    
    210 packages are looking for funding
      run `npm fund` for details
      
    

    接着是项目创建好了,使用 yarn 工具初始化,耗费了 10 分钟,也是大量警告。

    $ yarn
    yarn install v1.22.19
    info No lockfile found.
    [1/5] Validating package.json...
    [2/5] Resolving packages...
    warning react-dev-inspector > [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
    warning react-dev-inspector > react-dev-utils > fork-ts-checker-webpack-plugin > [email protected]: this will be v4
    warning @ant-design/pro-cli > pngjs-image > [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
    warning @ant-design/pro-cli > babel-types > babel-runtime > [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
    warning @ant-design/pro-cli > blink-diff > preceptor-core > [email protected]: 1.x is no longer supported. Please upgrade to 6.x or higher.
    warning @ant-design/pro-cli > @umijs/fabric > stylelint > @stylelint/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    warning @ant-design/pro-cli > @umijs/fabric > stylelint > @stylelint/[email protected]: Use the original unforked package instead: postcss-markdown
    warning @ant-design/pro-cli > pngjs-image > request > [email protected]: this library is no longer supported
    warning @ant-design/pro-cli > pngjs-image > request > [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
    warning @ant-design/pro-cli > blink-diff > preceptor-core > log4js > [email protected]: 0.x is no longer supported. Please upgrade to 3.x or higher.
    warning @ant-design/pro-cli > blink-diff > preceptor-core > log4js > streamroller > [email protected]: 0.x is no longer supported. Please upgrade to 4.x or higher.
    warning @types/[email protected]: This is a stub types definition. classnames provides its own type definitions, so you do not need this installed.
    warning @umijs/lint > @stylelint/[email protected]: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
    warning @umijs/max > umi > @umijs/bundler-webpack > fork-ts-checker-webpack-plugin > [email protected]: this will be v4
    warning @umijs/max > @umijs/plugins > dva-core > [email protected]: flatten is deprecated in favor of utility frameworks such as lodash.
    warning @umijs/max > @umijs/plugins > react-intl > [email protected]: We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser
    warning @umijs/max > @umijs/plugins > react-intl > intl-messageformat > [email protected]: We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser
    warning @umijs/max > @umijs/plugins > react-intl > @formatjs/[email protected]: We have renamed the package to @formatjs/intl-numberformat
    warning @umijs/max > @umijs/plugins > react-intl > intl-messageformat-parser > @formatjs/[email protected]: We have renamed the package to @formatjs/intl-numberformat
    warning @umijs/max > @umijs/plugins > react-intl > @formatjs/[email protected]: the package is rather renamed to @formatjs/ecma-abstract with some changes in functionality (primarily selectUnit is removed and we don't plan to make any further changes to this package
    warning @umijs/max > @umijs/plugins > react-intl > @formatjs/intl-displaynames > @formatjs/[email protected]: the package is rather renamed to @formatjs/ecma-abstract with some changes in functionality (primarily selectUnit is removed and we don't plan to make any further changes to this package
    warning @umijs/max > @umijs/plugins > react-intl > @formatjs/intl-listformat > @formatjs/[email protected]: the package is rather renamed to @formatjs/ecma-abstract with some changes in functionality (primarily selectUnit is removed and we don't plan to make any further changes to this package
    warning @umijs/max > @umijs/plugins > react-intl > @formatjs/intl-unified-numberformat > @formatjs/[email protected]: the package is rather renamed to @formatjs/ecma-abstract with some changes in functionality (primarily selectUnit is removed and we don't plan to make any further changes to this package
    warning @umijs/max > @umijs/plugins > react-intl > @formatjs/intl-relativetimeformat > @formatjs/[email protected]: the package is rather renamed to @formatjs/ecma-abstract with some changes in functionality (primarily selectUnit is removed and we don't plan to make any further changes to this package
    warning @umijs/max > umi > @umijs/preset-umi > click-to-react-component > @floating-ui/[email protected]: Package renamed to @floating-ui/react
    warning @umijs/max > umi > @umijs/bundler-webpack > @svgr/plugin-svgo > svgo > [email protected]: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
    warning umi-presets-pro > @alita/plugins > antd-mobile-alita > rmc-list-view > fbjs > [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
    warning umi-presets-pro > @alita/plugins > antd-mobile-alita > rc-swipeout > [email protected]: Package no longer supported. Use at your own risk or consider using https://github.com/software-mansion/react-native-gesture-handler
    [3/5] Fetching packages...
    [4/5] Linking dependencies...
    warning "@ant-design/pro-components > @ant-design/[email protected]" has unmet peer dependency "rc-field-form@^1.22.0".
    warning "@ant-design/pro-components > @ant-design/[email protected]" has unmet peer dependency "rc-field-form@^1.22.0".
    warning "react-dev-inspector > react-dev-utils > [email protected]" has unmet peer dependency "webpack@>= 4".
    warning "@umijs/lint > [email protected]" has unmet peer dependency "stylelint@^14.4.0".
    warning "@umijs/lint > stylelint-config-standard > [email protected]" has unmet peer dependency "stylelint@^14.4.0".
    warning "@umijs/lint > @umijs/babel-preset-umi > [email protected]" has unmet peer dependency "styled-components@>= 2".
    warning "@umijs/max > umi > @umijs/test > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
    warning "@umijs/max > @umijs/plugins > @ahooksjs/[email protected]" has incorrect peer dependency "react@^16.8.0 || ^17.0.0".
    warning "@umijs/max > umi > @umijs/bundler-webpack > [email protected]" has unmet peer dependency "webpack@^5.11.0".
    warning "@umijs/max > @umijs/plugins > [email protected]" has unmet peer dependency "dva@^2.5.0-0".
    warning "@umijs/max > @umijs/plugins > [email protected]" has incorrect peer dependency "dva-core@^1.1.0 || ^1.5.0-0 || ^1.6.0-0".
    warning "@umijs/max > @umijs/plugins > [email protected]" has incorrect peer dependency "react@^16.3.0".
    warning "@umijs/max > umi > @umijs/preset-umi > [email protected]" has unmet peer dependency "webpack@^5.20.0".
    warning "@umijs/max > umi > @umijs/preset-umi > [email protected]" has unmet peer dependency "postcss@>4 <9".
    warning "@umijs/max > umi > @umijs/test > [email protected]" has unmet peer dependency "@babel/core@^7.8.0".
    warning "@umijs/max > umi > @umijs/bundler-webpack > @pmmmwh/[email protected]" has unmet peer dependency "webpack@>=4.43.0 <6.0.0".
    warning "@umijs/max > umi > @umijs/bundler-webpack > [email protected]" has unmet peer dependency "webpack@^5.0.0".
    warning "@umijs/max > umi > @umijs/test > babel-jest > [email protected]" has unmet peer dependency "@babel/core@^7.0.0".
    warning "@umijs/max > umi > @umijs/test > babel-jest > babel-preset-jest > babel-preset-current-node-syntax > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
    warning " > [email protected]" has unmet peer dependency "@types/node@*".
    warning "umi-presets-pro > @umijs/[email protected]" has unmet peer dependency "umi@>=3".
    warning Workspaces can only be enabled in private projects.
    warning Workspaces can only be enabled in private projects.
    [5/5] Building fresh packages...
    success Saved lockfile.
    $ max setup
    😄 Hello PRO
    info  - [你知道吗?] 想快速修改 html 模板、DIY 项目?试试编写项目级插件,详见 https://umijs.org/docs/guides/directory-structure#plugints
    Using openapi Plugin
    info  - generate files
    info  - Preparing...
    $ husky install
    fatal: not a git repository (or any of the parent directories): .git
    Done in 610.08s.
    

    这么多提示消息,让我十分焦虑。其它不单单是 AntD ,包括其它的前端项目,也是有很多这样的现象,我就是想问问,是框架的维护者们对此觉得无所谓,忍着就行,还是用户的原因,是我使用姿势不对呢?

    其它的语言这种问题好像没有这么明显。

    第 1 条附言  ·  2023-08-23 23:40:00 +08:00
    看到大部分人都是这种态度,我最后决定不使用这个重型的前端框架 Antd 了。我实在是受不了这么多警告,只要能用就行的状态。我决定自己写。
    25 条回复    2023-08-24 11:28:46 +08:00
    pengtdyd
        1
    pengtdyd  
       2023-08-23 12:09:26 +08:00
    又不是不能用!
    maiyasu
        2
    maiyasu  
    OP
       2023-08-23 12:11:48 +08:00   ❤️ 13
    @pengtdyd 这让我想起一个笑话,““悬崖边的牌子上写着 Warning ,只有程序员掉了下去。””
    leaflxh
        3
    leaflxh  
       2023-08-23 12:12:03 +08:00
    项目和人有一个能跑就行(

    有好多“no longer supported”的包,应该需要换掉
    maiyasu
        4
    maiyasu  
    OP
       2023-08-23 12:12:54 +08:00
    @leaflxh 就事论事,是应该用户这边自己使用 npm 来换掉,还是应该架构中的依赖来解决这个问题呢?
    leaflxh
        5
    leaflxh  
       2023-08-23 12:13:48 +08:00
    可能怕万一出了漏洞,没人维护,或者 node 大版本更新后破坏了向前兼容,没人做新版本的适配
    leaflxh
        6
    leaflxh  
       2023-08-23 12:14:17 +08:00
    @maiyasu 谁开发谁治理(
    WasteNya
        7
    WasteNya  
       2023-08-23 12:26:22 +08:00 via Android
    很多大公司的产品的主页控制台都那么多警告和报错了,但这与产品的成功与否没有直接关系,能影响的只是我们技术那不值几个钱的洁癖而已。只要锁定版本,保证产品使用正常就可以了
    NerbraskaGuy
        8
    NerbraskaGuy  
       2023-08-23 12:53:26 +08:00
    这种版本升级提示不用管,有时候真管了还麻烦,比如之前换 M 芯片 mac 之后好多包的最新版本不兼容搞了半天
    potatowish
        9
    potatowish  
       2023-08-23 13:24:49 +08:00 via iPhone
    前端的警告不重要,直接无视。写后端倒是比较注意
    darkengine
        10
    darkengine  
       2023-08-23 14:56:51 +08:00
    前端(React)项目的依赖我是真怕的,老项目升级一个包带动 N 个包依赖出错,还是少动为妙。新项目最好还是都更新上去,毕竟能多苟一阵子。
    shyangs
        11
    shyangs  
       2023-08-23 14:57:39 +08:00
    我覺得你看的項目太少 C / C++ / Java / PHP / Python 都有這種無視 warning 的情況.

    - [对于程序员来说,Warning 真的不重要吗? - 知乎]( https://www.zhihu.com/question/29155164 )
    - [既然程序员不管警告,警告对程序员有什么用? - 知乎]( https://www.zhihu.com/question/29642632 )
    - [How to disable Python warnings? - Stack Overflow]( https://stackoverflow.com/questions/14463277/how-to-disable-python-warnings )
    maiyasu
        12
    maiyasu  
    OP
       2023-08-23 14:59:26 +08:00
    真没有想到,搞前端都是这样的状态吗?真的是负债
    plasticman64
        13
    plasticman64  
       2023-08-23 14:59:47 +08:00
    重要的包多测试一下,然后锁定版本即可
    maiyasu
        14
    maiyasu  
    OP
       2023-08-23 15:00:46 +08:00
    @shyangs 其它的项目的依赖没有 js 项目包管理这么糟糕吧。
    296727
        15
    296727  
       2023-08-23 15:04:21 +08:00
    为什么需要管呢?比如说一个东西,他说 10 个版本之后要改版,但是你固定了老版本,他报他的警告,你用你的老版本,功能稳定,为什么要处理?
    shyangs
        16
    shyangs  
       2023-08-23 15:09:17 +08:00
    @maiyasu

    嗯... C / C++ 連包管理都沒有,只能用 cmake (非嚴格意義的包管理). cmake 應該比不過 npm.
    maiyasu
        17
    maiyasu  
    OP
       2023-08-23 15:12:25 +08:00
    @shyangs Linux 下搞 C/C++开发,包都很稳定,开发体验不错,apt-get 安装 xxx-dev 这样的库的头文件就完事了。
    ericguo
        18
    ericguo  
       2023-08-23 15:35:30 +08:00
    楼主要么考虑换 Rails 算了,我这个模版 https://github.com/Eric-Guo/coreui4-rails-starter 现在没有 warning 。

    lidashuang
        19
    lidashuang  
       2023-08-23 15:46:15 +08:00
    用 rails 把,真象
    IvanLi127
        20
    IvanLi127  
       2023-08-23 15:49:35 +08:00 via Android
    你选了 ant design 还是 pro ,warning 少才奇怪,重新选型吧。
    不过每个 node 包更新频率都不一样,是比较容易出现各种的警告。少依赖过时的,更新频率不高的包吧
    Hilong
        21
    Hilong  
       2023-08-23 16:32:54 +08:00
    前端的 warning 直接无视就是了。真要去深究只能是掉进一个个神坑里。
    jqtmviyu
        22
    jqtmviyu  
       2023-08-23 18:20:17 +08:00
    我只能说脚手架的 warning 少动它, 一般都是锁定版本的, 除非上游更新, 否则你手动升级, 完全无法预测会出哪些 bug.

    框架说哪个版本就哪个版本. lock 文件锁哪个就哪个.就算是 3202 说要 node 16, 也下个 16 给它用.
    cleveryun
        23
    cleveryun  
       2023-08-23 20:59:06 +08:00 via Android
    我有代码洁癖,能去掉的 warning 尽量会去掉。不过也会考虑风险,有些包比如 ui 库的升级要很谨慎。
    x86
        24
    x86  
       2023-08-23 21:02:30 +08:00 via iPhone
    前端无所谓,又不是后端
    99s
        25
    99s  
       2023-08-24 11:28:46 +08:00
    想管也管不了,当你费劲心思把所有错误都清除后,隔个十天半个月一跑又一堆警告,你这次又解决了,但是呢,你的同事拉代码下来 npm install ,又 tm 一堆莫名其妙的报错,只能说前端还是太脆弱了,还有很长的路走。

    最近搞了个 webflow 的项目,全程网页操作写代码,可视化编辑,一键部署很方便,不用编译不用打包,当然只适合简单的项目,比如公司官网啥的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5478 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 07:19 · PVG 15:19 · LAX 23:19 · JFK 02:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.