首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用我的TypeScript模块TS2307:无法找到模块时出错

引用我的TypeScript模块TS2307:无法找到模块时出错
EN

Stack Overflow用户
提问于 2016-01-06 09:38:09
回答 1查看 4K关注 0票数 5

我正在与aurelia-typescript-skeleton合作,作为我的新项目的基础。我尝试在hello.ts文件夹中添加一个新的src文件

代码语言:javascript
复制
export class Hello {
  sayHello(name:string) : string {
    return 'Hello ' + name;
  }
}

并在同一文件夹中的另一个文件中引用它,如下所示

代码语言:javascript
复制
import {Hello} from './hello';

export class Users {
  constructor() {
    console.log(new Hello().sayHello('Test'));
  }
}

这两个文件位于相同的文件夹级别。当我第一次建造的时候,一切都很好。当我对users.ts文件进行任何后续的更改时,gulp-typescript编译总是失败,导致一个我无法理解的错误。类型记录编译器的错误是

代码语言:javascript
复制
> Starting 'build-system'...
> src\users.ts(4,21): error TS2307: Cannot find module 'hello'.
> TypeScript: 1 semantic error
> TypeScript: emit succeeded (with errors)
> Finished 'build-system' after 950 ms

每当我执行新的gulp watch时,都不会出现错误。当我编辑/更改users.ts文件时会出现错误。有人能帮我理解这个错误吗?一定是一些基本的东西..。

我在Windows 7环境下,我在2台机器上得到了这个错误。

更新:

这是回购以重现问题。复制步骤:

  1. 克隆回购,安装所有npmjspm依赖项。
  2. 运行gulp watch ->,不会发生错误。
  3. 更改users.ts文件并保存->发生错误。

UPDATE2:

clean之前添加build-system步骤有助于避免问题。这是要提交的链接。不过,我还是不太清楚这个问题的实际原因。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-22 14:55:10

这是因为只有修改后的文件users.ts被发送到后续TS编译,而noResolve被启用(在tsconfig.json中)。

请参阅文件build/tasks/build.js,任务'build-system'

代码语言:javascript
复制
.pipe(changed(paths.output, {extension: '.js'}))

通过比较输入文件的上一次修改时间和目标,确定(由gulp-changed)更改了哪些文件。因此,当您运行涉及cleanwatchclean时,将清除目标,并再次将所有文件发送到编译,因此不会出现错误。

当我尝试更新的框架应用程序(1.0.0-beta.1.2.2)时,这个问题已经解决了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34629785

复制
相关文章

相似问题

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