Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Typescript从节点模块导入ts文件_Node.js_Typescript_Tsc - Fatal编程技术网

Node.js Typescript从节点模块导入ts文件

Node.js Typescript从节点模块导入ts文件,node.js,typescript,tsc,Node.js,Typescript,Tsc,也许是重复的,但我已经搜索了一个小时,还没有找到答案 我有一个名为a-module的节点模块,其中包含一些.ts文件(例如a.ts) 我有另一个节点模块b-module,它的依赖项中有a-module 我想将一些.ts文件从a-module导入b-module。 在b-module中的某个文件中,我写道: import a = require('a-module/a'); console.log(a); 当我试图用tsc编译b-module时,is说 Cannot find external

也许是重复的,但我已经搜索了一个小时,还没有找到答案

我有一个名为
a-module
的节点模块,其中包含一些.ts文件(例如
a.ts

我有另一个节点模块
b-module
,它的依赖项中有
a-module

我想将一些.ts文件从
a-module
导入
b-module
。 在
b-module
中的某个文件中,我写道:

import a = require('a-module/a');
console.log(a);
当我试图用tsc编译
b-module
时,is说

Cannot find external module 'a-module/a'.
我做错了什么

另外,我有一个用于SublimiteText的ArcticTypescript插件,它似乎足够智能,可以找到
a-module/a
。为什么tsc不能找到我的文件

我的文件结构是这样的

b-module/
  node_modules/
    a-module/
      a.ts
  b.ts
我正在尝试将
a.ts
导入
b.ts

导入a=需要('a-模块/a')


您需要使用相对路径,即
。/a-module/a
,或者显式地为TypeScript声明它,即
声明模块“a-module/a”

你能发布你的目录结构吗?就像basarat所说的那样,TypeScript编译器需要知道模块的位置。@vanhelgen我已经用提供的文件结构更新了我的问题如果它是我的某个存储库中的文件
a.ts
,那么我应该在哪里声明我的
a-module/a
,该存储库是通过
npm install
?在您的模块中安装的
.d.ts
文件如果我写入
import a=require('./node\u modules/a-module/a')
,它就会编译。但是看起来很奇怪。为什么不像CommonJS所允许的那样导入呢?我想这是因为TypeScript必须事先知道模块的类型,所以它坚持要知道要加载的模块的确切类型。节点正在运行时解析依赖项,因此它没有此限制。