
我准备开发一个系统,看了一圈,打算用 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 pengtdyd 2023-08-23 12:09:26 +08:00 又不是不能用! |
3 leaflxh 2023-08-23 12:12:03 +08:00 项目和人有一个能跑就行( 有好多“no longer supported”的包,应该需要换掉 |
5 leaflxh 2023-08-23 12:13:48 +08:00 可能怕万一出了漏洞,没人维护,或者 node 大版本更新后破坏了向前兼容,没人做新版本的适配 |
7 WasteNya 2023-08-23 12:26:22 +08:00 via Android 很多大公司的产品的主页控制台都那么多警告和报错了,但这与产品的成功与否没有直接关系,能影响的只是我们技术那不值几个钱的洁癖而已。只要锁定版本,保证产品使用正常就可以了 |
8 NerbraskaGuy 2023-08-23 12:53:26 +08:00 这种版本升级提示不用管,有时候真管了还麻烦,比如之前换 M 芯片 mac 之后好多包的最新版本不兼容搞了半天 |
9 potatowish 2023-08-23 13:24:49 +08:00 via iPhone 前端的警告不重要,直接无视。写后端倒是比较注意 |
10 darkengine 2023-08-23 14:56:51 +08:00 前端(React)项目的依赖我是真怕的,老项目升级一个包带动 N 个包依赖出错,还是少动为妙。新项目最好还是都更新上去,毕竟能多苟一阵子。 |
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 ) |
12 maiyasu OP 真没有想到,搞前端都是这样的状态吗?真的是负债 |
13 plasticman64 2023-08-23 14:59:47 +08:00 重要的包多测试一下,然后锁定版本即可 |
15 296727 2023-08-23 15:04:21 +08:00 为什么需要管呢?比如说一个东西,他说 10 个版本之后要改版,但是你固定了老版本,他报他的警告,你用你的老版本,功能稳定,为什么要处理? |
16 shyangs 2023-08-23 15:09:17 +08:00 |
17 maiyasu OP @shyangs Linux 下搞 C/C++开发,包都很稳定,开发体验不错,apt-get 安装 xxx-dev 这样的库的头文件就完事了。 |
18 ericguo 2023-08-23 15:35:30 +08:00 |
19 G2bN4dbX9J3ncp0r 2023-08-23 15:46:15 +08:00 用 rails 把,真象 |
20 IvanLi127 2023-08-23 15:49:35 +08:00 via Android 你选了 ant design 还是 pro ,warning 少才奇怪,重新选型吧。 不过每个 node 包更新频率都不一样,是比较容易出现各种的警告。少依赖过时的,更新频率不高的包吧 |
21 Hilong 2023-08-23 16:32:54 +08:00 前端的 warning 直接无视就是了。真要去深究只能是掉进一个个神坑里。 |
22 jqtmviyu 2023-08-23 18:20:17 +08:00 我只能说脚手架的 warning 少动它, 一般都是锁定版本的, 除非上游更新, 否则你手动升级, 完全无法预测会出哪些 bug. 框架说哪个版本就哪个版本. lock 文件锁哪个就哪个.就算是 3202 说要 node 16, 也下个 16 给它用. |
23 cleveryun 2023-08-23 20:59:06 +08:00 via Android 我有代码洁癖,能去掉的 warning 尽量会去掉。不过也会考虑风险,有些包比如 ui 库的升级要很谨慎。 |
24 x86 2023-08-23 21:02:30 +08:00 via iPhone 前端无所谓,又不是后端 |
25 99s 2023-08-24 11:28:46 +08:00 想管也管不了,当你费劲心思把所有错误都清除后,隔个十天半个月一跑又一堆警告,你这次又解决了,但是呢,你的同事拉代码下来 npm install ,又 tm 一堆莫名其妙的报错,只能说前端还是太脆弱了,还有很长的路走。 最近搞了个 webflow 的项目,全程网页操作写代码,可视化编辑,一键部署很方便,不用编译不用打包,当然只适合简单的项目,比如公司官网啥的。 |