首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打字本的CommonJS内部模块未被NodeJS执行者识别

打字本的CommonJS内部模块未被NodeJS执行者识别
EN

Stack Overflow用户
提问于 2016-05-25 13:01:28
回答 1查看 141关注 0票数 0

我正在创建一个NodeJS应用程序,在该应用程序中,我需要创建内部模块,以便更好地组织代码逻辑,并避免在引用这些模块时编写完整的路径。

internal-module.ts

代码语言:javascript
运行
复制
export class A {
    test() {
  }
}

我有一堆包含导出类的文件,这些文件都是从一个索引文件导出的。

index.ts

代码语言:javascript
运行
复制
export * from './internal-module'
export * from './internal-module2'

然后,我将使用dts-generator为所有这些内部模块生成一个定义文件。

index.d.ts

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
import {A} from "src/internal-module";

所有这些都是从类型记录的角度来工作的--就像在生成定义文件之后,我得到了intellisense .但是,当运行实际的NodeJS代码(在也编译了.ts文件之后),没有找到模块:

代码语言:javascript
运行
复制
Error: Cannot find module 'src/internal-module'

我注意到在编译的.js文件中有以下代码:

consumer.js

代码语言:javascript
运行
复制
var a = require("src/internal-module");

这似乎与NodeJS对外部模块使用的语法相同,它通过node_modules文件夹进行搜索。我是不是遗漏了什么?这个问题与我编译TS的方式有关吗?

我正在用建议的CommonJS模式编译TS:

tsconfig.json

代码语言:javascript
运行
复制
{
    "compilerOptions": {
        "module": "commonjs",
        "declaration": true
    }
}
EN

回答 1

Stack Overflow用户

发布于 2016-05-25 14:34:26

尝试使用相对路径(以./为前缀):

代码语言:javascript
运行
复制
import {A} from "./src/internal-module";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37437985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档