我读过类似的问题,包括tsc throws `TS2307: Cannot find module` for a local file。
我有一个私有的外部模块(在本地git服务器上),我尝试将其包含在我的应用程序中 - 这可行。
我想知道为什么转换器会抛出此错误,虽然一切看起来都很好,但我需要将此错误用于稳定部署。
模块tsconfig.json看起来像:
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"target": "ES6",
"typeRoots": [
"node_modules/@types"
],
"sourceMap": false,
"noImplicitAny": false,
"declaration": true,
"noResolve": false
},
"version": "2.0.0"
}
我尝试了上述几种组合但没有成功。
我在模块中有一个Main.ts
,如
export {default as Logger} from "./Logger";
export {ILogger as ILogger} from './ILogger';
类和接口在哪里
export interface ILogger { }
export default class Logger implements ILogger { }
在我使用的应用程序中:
import {Logger, ILogger} from "logging";
当我尝试转换应用程序而不是模块时,会发生错误。同样,当通过节点运行应用程序时以及在phpStorm中进行编码时,一切都有效,但在转换时我得到:
src/Main.ts(9,39): error TS2307: Cannot find module 'logging'.
更新
看起来像tsc
中的错误:https://github.com/Microsoft/TypeScript/issues/14332
答案 0 :(得分:0)
我们只需要设置
"noResolve": false
到true
,它终于奏效了。
答案 1 :(得分:0)
在我们的项目中,错误是通过在 include 键中包含打字稿文件和定义来解决的,如下所示
"include": ["global.d.ts", "./app/**/*.tsx", "./app/**/*.ts"],
app 包含 typescript 文件, global.d.ts 包含本地包的声明,如下
declare module 'uicomponents-react-native';
declare module '@styles';
declare module '@styles/*';
declare module '@common';
declare module '@constants';
declare module '@constants/*';
declare module '@utils/*';
declare module '@utils';
declare module '@helper/*';
declare module '@helper';