找不到在 tsconfig \`paths\` 中定义的模块

新手上路,请多包涵

我正在尝试为我的模拟服务器设置别名。每当我尝试编译 ts 文件时,它会返回错误,即即使在 tsconfig,json -> paths

文件夹结构:

 ├── server
│   └── src
│       └──/json
├── src
│   └──/modules
├── tsconfig.json

这是我的 tsconfig.json

 {
    "compilerOptions": {
        "baseUrl": "./src",
        "experimentalDecorators": true,
        "jsx": "react",
        "lib": [
            "dom",
            "es2015",
            "es2015.promise"
        ],
        "module": "commonjs",
        "moduleResolution": "node",
        "noImplicitAny": true,
        "noUnusedLocals": true,
        "esModuleInterop": true,
        "paths": {
            "@project/app/modules/*": [
                "modules/*"
            ],
            "@project/server/data/*": [
                "../server/src/json/*"
            ]
        },
        "sourceMap": true,
        "target": "es5"
    },
    "exclude": [
        "node_modules",
        "tools"
    ]
}

错误: Error: Cannot find module '@project/server/data/accounts/accountsList'

原文由 Jamil Alisgenderov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
1 个回答

好吧,在经历了几个小时之后,我得到了一个解决方案,我正在使用 ts-node 包,我得到了同样的错误 Error: Cannot find module '@modules/logger'

您需要在 tsconfig.json 文件中添加 ts-node 配置。您可以在 ts-node 获得更多信息

这是我的 tsconfig.json 文件看起来像

{
    "ts-node": {
        // Do not forget to `npm i -D tsconfig-paths`
        "require": ["tsconfig-paths/register"]
    },
    "compilerOptions": {
        "lib": ["es5", "es6", "es7"],
        "target": "es2017",
        "module": "commonjs",
        "moduleResolution": "node",
        "rootDir": "src",
        "outDir": "build",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "esModuleInterop": true,
        "noImplicitAny": true,
        "strict": true,
        "resolveJsonModule": true,
        "allowJs": true,
        "sourceMap": true,

        "baseUrl": ".",
        "paths": {
            "@modules/*": ["src/modules/*"],
            "*": ["node_modules/*"]
        },

    },
    "include": ["src/**/*"]
}

这是我的 package.json

 "_moduleAliases": {
        "@modules": "build/modules",
        "@core": "build/core"
    }

您需要将此软件包安装为模块别名的依赖项 npm i module-alias

原文由 Md Alamin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进