我正在创建一个NodeJS应用程序,在该应用程序中,我需要创建内部模块,以便更好地组织代码逻辑,并避免在引用这些模块时编写完整的路径。
internal-module.ts
export class A {
test() {
}
}我有一堆包含导出类的文件,这些文件都是从一个索引文件导出的。
index.ts
export * from './internal-module'
export * from './internal-module2'然后,我将使用dts-generator为所有这些内部模块生成一个定义文件。
index.d.ts
declare module 'src/internal-module' {
export class A {
test(): void;
}
}
declare module 'src/index' {
export * from 'src/internal-module';
export * from 'src/internal-module2';
}然后,我将使用如下模块:
consumer.ts
import {A} from "src/internal-module";所有这些都是从类型记录的角度来工作的--就像在生成定义文件之后,我得到了intellisense .但是,当运行实际的NodeJS代码(在也编译了.ts文件之后),没有找到模块:
Error: Cannot find module 'src/internal-module'我注意到在编译的.js文件中有以下代码:
consumer.js
var a = require("src/internal-module");这似乎与NodeJS对外部模块使用的语法相同,它通过node_modules文件夹进行搜索。我是不是遗漏了什么?这个问题与我编译TS的方式有关吗?
我正在用建议的CommonJS模式编译TS:
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"declaration": true
}
}发布于 2016-05-25 14:34:26
尝试使用相对路径(以./为前缀):
import {A} from "./src/internal-module";https://stackoverflow.com/questions/37437985
复制相似问题