You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移代码时遇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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:10:46