【发布时间】:2021-02-22 22:07:27
【问题描述】:
由于 Visual Studio Code 中的 Typescript 错误,我无法再构建我的项目。
我正在和一位同事结对编程;我喜欢使用 Yarn,他们喜欢使用 NPM(是的,我知道混合和匹配包管理器很糟糕)。我最近将他们的分支下载到我的本地机器并遇到了一系列错误。不幸的是,我已经没有关于如何解决的想法。任何帮助将不胜感激。
错误 #1:
Your project contains lock files generated by tools other than Yarn. It is advised to not mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json
我删除了 package-lock.json。
错误 #2:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
at validateString (internal/validators.js:125:11)
at Object.join (path.js:1147:7)
at noopServiceWorkerMiddleware (/Users/me/Desktop/DevSep09/frontend/react/node_modules/react-dev-utils/noopServiceWorkerMiddleware.js:14:26)
at Layer.handle [as handle_request] (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/index.js:317:13)
at /Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/index.js:335:12)
at next (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/index.js:275:10)
at launchEditorMiddleware (/Users/me/Desktop/DevSep09/frontend/react/node_modules/react-dev-utils/errorOverlayMiddleware.js:20:7)
at Layer.handle [as handle_request] (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/index.js:317:13)
at /Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/index.js:335:12)
at next (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/index.js:275:10)
at handleWebpackInternalMiddleware (/Users/me/Desktop/DevSep09/frontend/react/node_modules/react-dev-utils/evalSourceMapMiddleware.js:42:7)
at Layer.handle [as handle_request] (/Users/me/Desktop/DevSep09/frontend/react/node_modules/express/lib/router/layer.js:95:5)
我通过项目删除了所有节点模块文件夹,并使用这些命令清除了 VS 缓存:
Clear Editor History
rm -rf ~/Library/Application\ Support/Code/Cache/*
rm -rf ~/Library/Application\ Support/Code/CachedData/*
我重新安装了所有库,然后尝试重建
yarn install
yarn upgrade
yarn build
仍然,我得到了这个编译错误(但我没有接触任何与这个组件相关的文件):
/Users/me/Desktop/DevSep09/frontend/react/src/components/reviews/ReviewPage/ReviewPage.tsx
TypeScript error in /Users/me/Desktop/DevSep09/frontend/react/src/components/reviews/ReviewPage/ReviewPage.tsx(25,38):
Object is of type 'unknown'. TS2571
我也把Node更新到了最新版本,还是没有骰子。
【问题讨论】:
-
我知道这可能没什么帮助,但你已经知道你正在尝试让 yarn 做一些 yarn 本身告诉你不要做的事情。如果你使用 npm,你会遇到同样的问题吗?
-
在同一个项目上工作的其他开发人员没有遇到类型错误通常是由于解决了不同版本的 npm 包(通过 yarn 或 npm)。这使得包之间的类型不对齐并出现错误。如果已解决较新版本的 Typescript,则还可能会应用最初未遵守的额外规则。通常包锁或纱线等效物会处理这个问题,但我认为由于包管理器的不匹配,这被忽略了。
-
不,我的伙伴正在使用 NPM 并且没有编译错误,所以很可能是一些不匹配的依赖项,但仍然没有找到它。
标签: javascript reactjs typescript visual-studio visual-studio-code