先看start的结果:
真的是run起来了。
先汇报下报错:
1、node版本不匹配
2、依赖项缺失
3、依赖项版本冲突
4、其它看不懂的错。
使用nvm安装匹配版本的node并切换。
% nvm
Node Version Manager (v0.39.7)
Note: <version> refers to any version-like string nvm understands. This includes:
- full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)
- default (built-in) aliases: node, stable, unstable, iojs, system
- custom aliases you define with `nvm alias foo`
Any options that produce colorized output should respect the `--no-colors` option.
Usage:
nvm --help Show this message
--no-colors Suppress colored output
nvm --version Print out the installed version of nvm
nvm install [<version>] Download and install a <version>. Uses .nvmrc if available and version is omitted.
Example:
nvm install 8.0.0 Install a specific version number
nvm use 8.0 Use the latest available 8.0.x release
nvm run 6.10.3 app.js Run app.js using node 6.10.3
nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3
nvm alias default 8.1.0 Set default node version on a shell
nvm alias default node Always default to the latest available node version on a shell
nvm install node Install the latest available version
nvm use node Use the latest version
nvm install --lts Install the latest LTS version
nvm use --lts Use the latest LTS version
nvm set-colors cgYmW Set text colors to cyan, green, bold yellow, magenta, and white
Note:
to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)
ERROR Failed to compile with 4 errors 4:52:09 PM
These dependencies were not found:
* ali-oss in ./src/utils/utils.ts
* react-draggable in ./src/components/UdeskTTS/index.tsx
* react-resizable in ./src/components/ResizeTableColumn/index.tsx
* xlsx in ./src/pages/GoodsManagement/GoodsComparison/index.tsx
To install them, you can run: npm install --save ali-oss react-draggable react-resizable xlsx
ERROR in ./src/utils/utils.ts
Module not found: Error: Can't resolve 'ali-oss' in '/Users/cheng.tang/workspace/codes/fe/zkh-gbb-admin-site/src/utils'
@ ./src/utils/utils.ts 13:0-26 613:13-16
@ ./src/pages/OrderManagement/DraftBargain/index.tsx
@ ./src/.umi/core/routes.ts
@ ./src/.umi/umi.ts
@ multi ./node_modules/@umijs/preset-built-in/bundled/@pmmmwh/react-refresh-webpack-plugin/client/ReactRefreshEntry.js ./src/.umi/umi.ts
ERROR in ./src/components/UdeskTTS/index.tsx
Module not found: Error: Can't resolve 'react-draggable' in '/Users/cheng.tang/workspace/codes/fe/zkh-gbb-admin-site/src/components/UdeskTTS'
@ ./src/components/UdeskTTS/index.tsx 14:0-40 130:30-39
@ ./src/components/Sales/ClueCust/index.tsx
@ ./src/components/Sales/ClueCustomer/index.tsx
@ ./src/pages/Dashboard/Sales/index.tsx
@ ./src/.umi/core/routes.ts
@ ./src/.umi/umi.ts
@ multi ./node_modules/@umijs/preset-built-in/bundled/@pmmmwh/react-refresh-webpack-plugin/client/ReactRefreshEntry.js ./src/.umi/umi.ts
ERROR in ./src/components/ResizeTableColumn/index.tsx
Module not found: Error: Can't resolve 'react-resizable' in '/Users/cheng.tang/workspace/codes/fe/zkh-gbb-admin-site/src/components/ResizeTableColumn'
@ ./src/components/ResizeTableColumn/index.tsx 17:0-44 110:30-39
@ ./src/pages/GoodsManagement/GoodsApproval/BasicInfoDetail/index.tsx
@ ./src/pages/GoodsManagement/GoodsApproval/index.tsx
@ ./src/.umi/core/routes.ts
@ ./src/.umi/umi.ts
@ multi ./node_modules/@umijs/preset-built-in/bundled/@pmmmwh/react-refresh-webpack-plugin/client/ReactRefreshEntry.js ./src/.umi/umi.ts
ERROR in ./src/pages/GoodsManagement/GoodsComparison/index.tsx
Module not found: Error: Can't resolve 'xlsx' in '/Users/cheng.tang/workspace/codes/fe/zkh-gbb-admin-site/src/pages/GoodsManagement/GoodsComparison'
@ ./src/pages/GoodsManagement/GoodsComparison/index.tsx 18:0-29 43:21-30 47:21-31
@ ./src/.umi/core/routes.ts
@ ./src/.umi/umi.ts
@ multi ./node_modules/@umijs/preset-built-in/bundled/@pmmmwh/react-refresh-webpack-plugin/client/ReactRefreshEntry.js ./src/.umi/umi.ts
info 如果你需要进交流群,请访问 https://fb.umijs.org
node:internal/process/promises:279
triggerUncaughtException(err, true /* fromPromise */);
^
[Error: ENOENT: no such file or directory, stat '/.VolumeIcon.icns'] {
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: '/.VolumeIcon.icns'
}
解决依赖项缺失的问题
错误信息提示您的项目中缺少以下依赖项:
ali-oss
react-draggable
react-resizable
xlsx
您可以通过运行以下命令来安装这些依赖:
npm install --save ali-oss react-draggable react-resizable xlsx
90 verbose Darwin 21.6.0
91 verbose node v16.20.2
92 verbose npm v8.19.4
93 error code ERESOLVE
94 error ERESOLVE could not resolve
95 error
96 error While resolving: [1mbizcharts[22m@[1m3.5.10[22m
96 error Found: [1mreact[22m@[1m17.0.2[22m[2m[22m
96 error [2mnode_modules/react[22m
96 error [35mpeer[39m [1mreact[22m@"[1m^16.8.0 || ^17.0.0[22m" from [1m@ahooksjs/use-request[22m@[1m2.8.15[22m[2m[22m
错误信息指出 bizcharts
需要 react
的版本为 ^15.0.0 || ^16.0.0
,但是您的项目中已经有了 react
版本 17.0.2
。这导致了版本冲突。您有几个选项来解决这个问题:
bizcharts
:如果 bizcharts
有兼容 react
17.x 的版本,请升级到那个版本。react
:如果可能,您可以考虑将 react
降级到与 bizcharts
兼容的版本。--legacy-peer-deps
:这个选项允许 npm 忽略对等依赖的版本冲突。您可以使用这个选项来继续安装,但这可能会导致运行时错误,如果依赖项之间不兼容的话。升级 bizcharts
:
npm install bizcharts@latest
降级 react
:
npm install react@16
使用 --legacy-peer-deps
:
npm install --legacy-peer-deps
package.json
:确保 package.json
中的依赖项没有相互冲突的版本要求。npm cache clean --force
node_modules
和 package-lock.json
:有时候,删除这些文件并重新安装依赖项可以解决问题。
rm -rf node_modules package-lock.json
npm
install
按上面的操作,会报新的错:
% npm install bizcharts@latest
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: braft-editor@2.3.9
npm ERR! Found: react@17.0.2
npm ERR! node_modules/react
npm ERR! peer react@"^16.8.0 || ^17.0.0" from @ahooksjs/use-request@2.8.15
npm ERR! node_modules/@ahooksjs/use-request
npm ERR! @ahooksjs/use-request@"^2.8.0" from @umijs/plugin-request@2.9.0
npm ERR! node_modules/@umijs/plugin-request
npm ERR! @umijs/plugin-request@"2.9.0" from @umijs/preset-react@2.1.7
npm ERR! node_modules/@umijs/preset-react
npm ERR! dev @umijs/preset-react@"^2.1.0" from the root project
npm ERR! peer react@">=16.8.4" from @ant-design/charts@1.4.3
npm ERR! node_modules/@ant-design/charts
npm ERR! @ant-design/charts@"^1.4.2" from the root project
npm ERR! 115 more (@ant-design/flowchart, @ant-design/graphs, ...)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^15.0.2|| ^16.0.0-rc || ^16.0.0" from braft-editor@2.3.9
npm ERR! node_modules/braft-editor
npm ERR! braft-editor@"^2.3.9" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: react@16.14.0
npm ERR! node_modules/react
npm ERR! peer react@"^15.0.2|| ^16.0.0-rc || ^16.0.0" from braft-editor@2.3.9
npm ERR! node_modules/braft-editor
npm ERR! braft-editor@"^2.3.9" from the root project
npm ERR!
错误是由于 braft-editor
依赖的 react
版本与您项目中已有的 react
版本不兼容。braft-editor
需要 react
的版本为 ^15.0.2 || ^16.0.0-rc || ^16.0.0
,但是您的项目中使用的是 react
版本 17.0.2
。
要解决这个问题,您有几个选项:
如果项目允许,您可以将 react
和 react-dom
降级到与 braft-editor
兼容的版本。您可以根据 braft-editor
的要求选择一个合适的版本,比如 16.14.0
。
npm install react@16.14.0 react-dom@16.14.0
如果 braft-editor
有兼容 react
17 的版本,请尝试升级到最新版本。您可以查看 braft-editor
的文档或 package.json
文件,找到兼容 react
17 的版本,并进行安装。
npm install braft-editor@latest
--legacy-peer-deps
如果您想要忽略对等依赖的版本冲突(可能会引入运行时错误),您可以使用 --legacy-peer-deps
选项来继续安装。
npm install --legacy-peer-deps
如果 braft-editor
不是项目的核心依赖,您可以考虑移除它或寻找替代的富文本编辑器,这些编辑器需要与您当前的 react
版本兼容。
有时候,清理 npm 缓存和重新安装依赖项可以解决问题。
npm cache clean --force
rm -rf node_modules
rm package-lock.json
npm install
package.json
确保 package.json
中没有其他依赖项与 react
版本冲突。
npm-force-resolutions
这是一个第三方的 npm 包,可以帮助您强制解决依赖项版本冲突的问题。
npm install npm-force-resolutions
npx npm-force-resolutions
然后,在项目的根目录下创建一个 force-resolutions.json
文件,指定需要强制解决的依赖项版本。
package.json
如果自动解决方案不起作用,您可以尝试手动编辑 package.json
文件,将不兼容的依赖项版本改为兼容的版本,然后运行 npm install
。
请根据您的项目需求和依赖项的兼容性,选择最适合您的解决方案。如果问题依然存在,您可能需要更详细地检查项目的依赖关系,或者寻求社区的帮助。
node:internal/process/promises:279
triggerUncaughtException(err, true /* fromPromise */);
^
[Error: ENOENT: no such file or directory, stat '/.VolumeIcon.icns'] {
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: '/.VolumeIcon.icns'
}
这个报错的字面意思很清楚,但有些摸不着头脑。 删除node_modules文件夹,然后重新npm install后报错消失了。
复盘一下run这个前端项目的过程,最终的操作路径是这样:
%nvm use 16
%rm -rf node_modules
%npm install --legacy-peer-deps
这三个命令执行下来,这个ant-design项目就run起来了。
项目代码一行没改,上面的报错就消失了。奇怪的很
相比较Java项目,node还不成熟。
1、依赖项管理复杂。
SpringBoot的starter已经解决了不同组件版本的兼容问题;Maven/Gradle很好地管理了项目的依赖。
项目依赖的管理是指maven通过依赖传播、依赖优先原则、可选依赖、排除依赖、依赖范围等特性来管理项目ClassPath。 唐成,公众号:的数字化之路想了解Maven?这一篇就够了!So Easy~~
2、报错信息与错误原因离的有些远。
上面列的报错,莫名其妙的。最终通过删除node_modules和指定参数--legacy-peer-deps,项目就跑起来了。
你说node目前的阶段,build耗时比Java长了很多。如果大规模用在生产中,效率必然也低于Java。
但node的工具集中也不乏亮点。
1、node版本管理很强很方便。
nvm吊打jenv
Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions. nvm allows you to quickly install and use different versions of node via the command line. https://github.com/nvm-sh/nvm
2、npm fund
% npm fund
ant-design-pro@5.2.0
├─┬ https://opencollective.com/ant-design
│ │ └── antd@4.21.2
│ └── https://opencollective.com/date-fns
│ └── date-fns@2.30.0
├── https://github.com/sponsors/ljharb
│ └── qs@6.12.1, minimist@1.2.8, tape@4.17.0, call-bind@1.0.7, function-bind@1.1.2, get-intrinsic@1.2.4, has-proto@1.0.3, has-symbols@1.0.3, define-data-property@1.1.4, gopd@1.0.1, has-property-descriptors@1.0.2, deep-equal@1.1.2, is-arguments@1.1.1, has-tostringtag@1.0.2, is-date-object@1.0.5, object-is@1.1.6, define-properties@1.2.1, regexp.prototype.flags@1.5.2, functions-have-names@1.2.3, defined@1.0.1, is-regex@1.1.4, mock-property@1.0.3, object-inspect@1.12.3, resolve@1.22.8, is-core-module@2.13.1, supports-preserve-symlinks-flag@1.0.0, string.prototype.trim@1.2.9, es-abstract@1.23.3, array-buffer-byte-length@1.0.1, arraybuffer.prototype.slice@1.0.3, available-typed-arrays@1.0.7, data-view-buffer@1.0.1, data-view-byte-length@1.0.1, data-view-byte-offset@1.0.0, es-to-primitive@1.2.1, is-symbol@1.0.4, function.prototype.name@1.1.6, get-symbol-description@1.0.2, globalthis@1.0.4, is-array-buffer@3.0.4, is-data-view@1.0.1, is-negative-zero@2.0.3, is-shared-array-buffer@1.0.3, is-string@1.0.7, is-typed-array@1.1.13, is-weakref@1.0.2, object-inspect@1.13.1, object.assign@4.1.5, safe-array-concat@1.1.2, safe-regex-test@1.0.3, string.prototype.trimend@1.0.8, string.prototype.trimstart@1.0.8, typed-array-byte-length@1.0.1, typed-array-byte-offset@1.0.2, typed-array-length@1.0.6, unbox-primitive@1.0.2, has-bigints@1.0.2, which-boxed-primitive@1.0.2, is-bigint@1.0.4, is-boolean-object@1.1.2, is-number-object@1.0.7, which-typed-array@1.1.15, side-channel@1.0.6, is-callable@1.2.7, shell-quote@1.8.1, is-object@1.0.2, array-includes@3.1.8, array.prototype.findlast@1.2.5, array.prototype.flatmap@1.3.2, object.fromentries@2.0.8, object.hasown@1.1.4, object.values@1.2.0, resolve@2.0.0-next.5, string.prototype.matchall@4.0.11, reflect.getprototypeof@1.0.6, which-builtin-type@1.1.3, is-async-function@2.0.0, is-finalizationregistry@1.0.2, is-generator-function@1.0.10, which-collection@1.0.2, is-map@2.0.3, is-set@2.0.3, is-weakmap@2.0.2, is-weakset@2.0.3, array.prototype.flat@1.3.2, jsonify@0.0.1, array-map@0.0.1, camelize@1.0.1
├─┬ https://opencollective.com/webpack
│ │ └── webpack@4.47.0, terser-webpack-plugin@5.3.10, webpack-cli@5.1.4, schema-utils@3.3.0
│ ├── https://github.com/sponsors/sindresorhus
│ │ └── component-emitter@1.3.1, globals@13.24.0, strip-json-comments@3.1.1, cli-truncate@2.1.0, log-update@4.0.0, p-map@4.0.0, get-stdin@8.0.0, html-tags@3.3.1, meow@9.0.0, camelcase-keys@6.2.2, map-obj@4.3.0, decamelize-keys@1.1.1, type-fest@0.18.1, screenfull@5.2.0, get-stream@6.0.1, merge-descriptors@1.0.3, escape-string-regexp@4.0.0, find-up@5.0.0, locate-path@6.0.0, p-locate@5.0.0, p-limit@3.1.0, yocto-queue@0.1.0, globby@11.1.0, gzip-size@6.0.0, open@8.4.2, is-docker@2.2.1, binary-extensions@2.3.0, import-fresh@3.3.0, parse-json@5.2.0, p-limit@2.3.0, query-string@6.14.1, is-stream@2.0.1, onetime@5.1.2, ora@5.4.1, cli-spinners@2.9.2, is-unicode-supported@0.1.0, log-symbols@4.1.0, defaults@1.0.4, eslint-formatter-pretty@4.1.0, ansi-escapes@4.3.2, type-fest@0.21.3, plur@4.0.0, import-modules@2.1.0, read-pkg-up@7.0.1, os-locale@5.0.0, get-stream@5.2.0, normalize-url@6.1.0, type-fest@0.20.2, copy-text-to-clipboard@2.2.0, capture-stack-trace@1.0.2, import-local@3.1.0, p-each-series@2.2.0, terminal-link@2.1.1, make-dir@4.0.0, camelcase@6.3.0, conf@9.0.2, debounce-fn@4.0.0, dot-prop@6.0.1, make-dir@3.1.0, filenamify@4.3.0, cli-boxes@2.2.1
│ └── https://paulmillr.com/funding/
│ └── async-each@1.0.6
├─┬ https://opencollective.com/eslint
│ │ └── eslint@7.32.0, eslint-visitor-keys@3.4.3
│ ├── https://github.com/sponsors/mysticatea
│ │ └── regexpp@3.2.0, eslint-utils@2.1.0, eslint-utils@3.0.0
│ ├── https://github.com/sponsors/epoberezkin
│ │ └── ajv@8.13.0, ajv@6.12.6, ajv@7.2.4
│ └── https://github.com/chalk/slice-ansi?sponsor=1
│ └── slice-ansi@4.0.0
├── https://github.com/sponsors/typicode
│ └── husky@7.0.4
├── https://opencollective.com/lint-staged
│ └── lint-staged@10.5.4
├── https://github.com/prettier/prettier?sponsor=1
│ └── prettier@2.8.8
├─┬ https://opencollective.com/stylelint
│ │ └── stylelint@13.13.1
│ ├── https://github.com/sponsors/wooorm
│ │ └── mathml-tag-names@2.1.3, comma-separated-tokens@1.0.8, space-separated-tokens@1.1.5, html-void-elements@1.0.5, web-namespaces@1.1.4, zwitch@1.0.5, ccount@1.1.0, fault@1.0.4, parse-entities@2.0.0, character-entities@1.2.4, character-reference-invalid@1.1.4, is-alphanumerical@1.0.4, is-alphabetical@1.0.4, is-decimal@1.0.4, is-hexadecimal@1.0.4, markdown-table@2.0.0, longest-streak@2.0.4, bail@1.0.5, trough@1.0.5, property-information@5.6.0, stringify-entities@3.1.0, character-entities-html4@1.1.4, character-entities-legacy@1.1.4
│ ├── https://opencollective.com/unified
│ │ └── remark@13.0.0, unified@9.2.2, unist-util-find-all-after@3.0.2, hast-util-has-property@1.0.4, hast-util-is-element@1.1.0, hast-util-raw@6.1.0, hast-util-from-parse5@6.0.1, hastscript@6.0.0, hast-util-parse-selector@2.2.5, vfile-location@3.2.0, hast-util-to-parse5@6.0.0, hast-to-hyperscript@9.0.1, unist-util-is@4.1.0, unist-util-position@3.1.0, vfile@4.2.1, unist-util-stringify-position@2.0.3, vfile-message@2.0.4, hast-util-to-html@7.1.3, hast-util-whitespace@1.0.4, hast-util-to-string@1.0.4, rehype-autolink-headings@4.0.0, rehype-mathjax@3.1.0, hast-util-from-dom@3.0.0, hast-util-to-text@2.0.1, unist-util-find-after@3.0.0, rehype-remove-comments@4.0.2, hast-util-is-conditional-comment@1.0.4, rehype-stringify@8.0.0, remark-frontmatter@3.0.0, mdast-util-frontmatter@0.2.0, micromark-extension-frontmatter@0.2.2, remark-gfm@1.0.0, mdast-util-gfm@0.1.2, mdast-util-gfm-autolink-literal@0.1.3, mdast-util-find-and-replace@1.1.1, mdast-util-gfm-strikethrough@0.2.3, mdast-util-gfm-table@0.1.6, mdast-util-gfm-task-list-item@0.1.6, mdast-util-to-markdown@0.6.5, mdast-util-to-string@2.0.0, micromark-extension-gfm@0.3.3, micromark-extension-gfm-autolink-literal@0.5.7, micromark-extension-gfm-strikethrough@0.6.5, micromark-extension-gfm-table@0.4.3, micromark-extension-gfm-tagfilter@0.3.0, micromark-extension-gfm-task-list-item@0.3.3, remark-math@4.0.0, mdast-util-math@0.1.2, micromark-extension-math@0.1.2, remark-parse@9.0.0, mdast-util-from-markdown@0.8.5, remark-rehype@8.1.0, mdast-util-to-hast@10.2.0, mdast-util-definitions@4.0.0, unist-builder@2.0.3, unist-util-generated@1.1.6, remark-stringify@9.0.1, unified@8.4.2, unist-util-visit@2.0.3, unist-util-visit-parents@3.1.1
│ ├── https://github.com/sponsors/fb55
│ │ └── domelementtype@2.3.0
│ └── https://github.com/fb55/entities?sponsor=1
│ └── entities@2.2.0
├── https://opencollective.com/ua-parser-js
│ └── ua-parser-js@0.7.37
├── https://opencollective.com/immer
│ └── immer@5.3.6
├── https://opencollective.com/turf
│ └── @turf/helpers@6.5.0, @turf/clone@6.5.0, @turf/meta@6.5.0, @turf/polygon-to-line@6.5.0, @turf/invariant@6.5.0, @turf/union@6.5.0, @turf/bbox@6.5.0, @turf/bbox-polygon@6.5.0
├── https://github.com/maplibre/maplibre-gl-js?sponsor=1
│ └── maplibre-gl@3.6.2
├── https://github.com/sponsors/feross
│ └── ieee754@1.2.1, run-parallel@1.2.0, queue-microtask@1.2.3, base64-js@1.5.1, safe-buffer@5.2.1, arch@2.2.0, buffer@5.7.1, is-buffer@2.0.5
├── https://opencollective.com/darkreader
│ └── @umijs/ssr-darkreader@4.9.45
├── https://opencollective.com/babel
│ └── @babel/core@7.18.6
├── https://jaywcjlove.github.io/#/sponsor
│ └── hotkeys-js@3.13.7
├─┬ https://github.com/chalk/chalk?sponsor=1
│ │ └── chalk@4.1.2
│ └── https://github.com/chalk/ansi-styles?sponsor=1
│ └── ansi-styles@4.3.0
├── https://github.com/sponsors/jonschlinkert
│ └── picomatch@2.3.1
├─┬ https://opencollective.com/postcss/
│ │ └── postcss@8.4.38, postcss-load-config@2.1.2
│ └── https://github.com/sponsors/ai
│ └── nanoid@3.3.7
├── https://opencollective.com/core-js
│ └── core-js@3.8.2, core-js-pure@3.37.1, core-js-compat@3.37.1
├── https://tidelift.com/funding/github/npm/autoprefixer
│ └── autoprefixer@9.8.8
├── https://github.com/sponsors/mdevils
│ └── html-entities@2.5.2
├── https://github.com/sindresorhus/execa?sponsor=1
│ └── execa@5.1.1, execa@4.1.0
├── https://opencollective.com/typescript-eslint
│ └── @typescript-eslint/eslint-plugin@5.62.0, @typescript-eslint/scope-manager@5.62.0, @typescript-eslint/types@5.62.0, @typescript-eslint/visitor-keys@5.62.0, @typescript-eslint/type-utils@5.62.0, @typescript-eslint/typescript-estree@5.62.0, @typescript-eslint/utils@5.62.0, @typescript-eslint/parser@5.62.0, @typescript-eslint/experimental-utils@4.33.0, @typescript-eslint/scope-manager@4.33.0, @typescript-eslint/visitor-keys@4.33.0, @typescript-eslint/types@4.33.0, @typescript-eslint/typescript-estree@4.33.0
├── https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1
│ └── eslint-plugin-unicorn@20.1.0
├── https://github.com/fisker/git-hooks-list?sponsor=1
│ └── git-hooks-list@1.0.3
├─┬ https://github.com/Mermade/oas-kit?sponsor=1
│ │ └── swagger2openapi@7.0.8, oas-resolver@2.5.6, oas-schema-walker@1.1.5, oas-validator@5.0.8, oas-linter@3.2.2, reftools@1.1.9
│ └── https://github.com/chalk/wrap-ansi?sponsor=1
│ └── wrap-ansi@7.0.0
├── https://github.com/sponsors/gjtorikian/
│ └── isbinaryfile@4.0.10
├── https://github.com/privatenumber/esbuild-loader?sponsor=1
│ └── esbuild-loader@2.9.2
├── https://bevry.me/fund
│ └── istextorbinary@2.6.0, binaryextensions@2.3.0, editions@2.3.1, errlop@2.2.0, textextensions@2.6.0
├── https://opencollective.com/react-spring/donate
│ └── @react-spring/core@9.6.1
├── https://github.com/sindresorhus/emittery?sponsor=1
│ └── emittery@0.7.2
├── https://paypal.me/naturalintelligence
│ └── fast-xml-parser@4.2.5
└── https://github.com/avajs/find-cache-dir?sponsor=1
└── find-cache-dir@3.3.2