2015-05-29 108 views
0

也许它是重复的,但我搜索了一个小时,但没有找到答案。Typescript从节点模块导入ts文件

我有拥有它的依赖中a-module另一个节点模块b-module名为a-module节点模块,其中包含一些.ts文件(例如a.ts)。

我想从a-module导入一些.ts文件到b-module。 在一些文件中b-module我写:

import a = require('a-module/a'); 
console.log(a); 

然后当我试图编译b-module与TSC,是说

Cannot find external module 'a-module/a'. 

我在做什么错?

P.S.我有SublimeText的ArcticTypescript插件,看起来它足够智能地找到a-module/a。为什么然后tsc无法找到我的文件?

P.P.S我的文件结构看起来像

b-module/ 
    node_modules/ 
    a-module/ 
     a.ts 
    b.ts 

我试图导入a.tsb.ts

+0

你能发布你的目录结构吗?像Basarat说的那样,TypeScript编译器需要知道模块的位置。 – mfeineis

+0

@vanhelgen我已经用提供的文件结构更新了我的问题 – Girafa

回答

1

import a = require('a-module/a');

您需要使用相对路径,即../a-module/a或明确声明TypeScript,即declare module "a-module/a"

+0

在我通过'npm install'安装的另一个存储库中,如果它是文件'a.ts',我应该在哪里声明我的'a-module/a'? – Girafa

+0

在你的模块里有一些'.d.ts'文件 – basarat

+0

如果我编写'import a = require('./ node_modules/a-module/a')'然后编译。但它看起来很奇怪。为什么不像CommonJS那样导入允许。 – Girafa