我正在使用NX monorepo,其中包括Expo React Native应用程序和多个库.我遇到了一个问题,从应用程序内的库导入组件会导致
Error: Cannot resolve @monorepo/account-manager
我的NX工作区的libs文件夹中有一个名为account-manager的库.在这个库中,有一个组件App.tsx,我将其输出到index.tsx文件中:
export {default as App} from "../src/app/App"
在我的根tsconfig.base.json
中,我添加了以下内容:
"paths": {
"@monorepo/account-manager": ["libs/account-manager/src/index.tsx"]
}
我在我的项目中像这样导入它(忽略命名):
import React from 'react';
import {App as Hello} from "@monorepo/account-manager"
const App = () => (
<Hello/>
);
export default App;
我使用以下命令生成了库: npx nx g @nx/expo:图书馆
try 导入输出组件后的完整错误是这样的:
error: Error: Cannot resolve @monorepo/account-manager
at firstResolver (C:\DEV\monorepo\node_modules\@nx\expo\plugins\metro-resolver.js:33:15)
at firstResolver (C:\DEV\monorepo\node_modules\expo\node_modules\@expo\cli\src\start\server\metro\withMetroResolvers.ts:108:16)
at resolveRequest (C:\DEV\monorepo\node_modules\expo\node_modules\@expo\cli\src\start\server\metro\withMetroResolvers.ts:137:16)
at Object.resolve (C:\DEV\monorepo\node_modules\metro-resolver\src\resolve.js:32:12)
at ModuleResolver.resolveDependency (C:\DEV\monorepo\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:73:31)
at DependencyGraph.resolveDependency (C:\DEV\monorepo\node_modules\metro\src\node-haste\DependencyGraph.js:231:43)
at C:\DEV\monorepo\node_modules\metro\src\lib\transformHelpers.js:156:21
at resolveDependencies (C:\DEV\monorepo\node_modules\metro\src\DeltaBundler\buildSubgraph.js:42:25)
at visit (C:\DEV\monorepo\node_modules\metro\src\DeltaBundler\buildSubgraph.js:83:30)
at async Promise.all (index 2)
at visit (C:\DEV\monorepo\node_modules\metro\src\DeltaBundler\buildSubgraph.js:92:5)
at async Promise.all (index 0)
at buildSubgraph (C:\DEV\monorepo\node_modules\metro\src\DeltaBundler\buildSubgraph.js:103:3)
at Graph._buildDelta (C:\DEV\monorepo\node_modules\metro\src\DeltaBundler\Graph.js:157:22)
at Graph.initialTraverseDependencies (C:\DEV\monorepo\node_modules\metro\src\DeltaBundler\Graph.js:140:19)
at DeltaCalculator._getChangedDependencies (C:\DEV\monorepo\node_modules\metro\src\DeltaBundler\DeltaCalculator.js:151:25)
我已经try 将文件名从index.ts = index.tsx更改
此外,我还try 将"paths"
对象添加到项目tsspread.json中.