迁移代码时遇Module not found: Can't resolve 'settings'问题求助
自定义模块编译报错:Module not found: Can't resolve 'settings'
问题详情
迁移代码时遭遇编译失败,报错信息:
./src/.../folder/my-code.ts Module not found: Can't resolve 'settings' in '/Users/.../folder'
项目根目录下有settings.d.ts声明文件,内容如下:
type Settings = { group: { field1: string; field2: string; ... }; }; declare module 'settings' { const s: Settings; export = s; }
同目录的tsconfig.json配置:
{ "compilerOptions": { "target": "es5", "lib": [ "dom", "dom.iterable", "esnext" ], "types": ["@emotion/react"], "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "allowJs": true, "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, "noFallthroughCasesInSwitch": true, "isolatedModules": true, "noEmit": true, "jsx": "react-jsx" }, "include": [ "src", "settings.d.ts" ], "exclude": [ "node_modules", "build" ] }
在my-code.ts里试了三种导入方式,VSCode里没有TypeScript错误,还能正常跳转到settings.d.ts,但编译就是通不过:
import * as settings from 'settings'; import settings from 'settings'; import { field } from 'settings';
最终排查结果
问题出在node_modules里缺少settings.d.ts要增强声明的对应包,这个包在旧代码库的添加方式太复杂,没法直接迁移过来。上述的代码片段和配置本身都是没问题的。
内容的提问来源于stack exchange,提问作者duduwe
相关产品推荐
相关产品推荐

