我正在与aurelia-typescript-skeleton合作,作为我的新项目的基础。我尝试在hello.ts文件夹中添加一个新的src文件
export class Hello {
sayHello(name:string) : string {
return 'Hello ' + name;
}
}并在同一文件夹中的另一个文件中引用它,如下所示
import {Hello} from './hello';
export class Users {
constructor() {
console.log(new Hello().sayHello('Test'));
}
}这两个文件位于相同的文件夹级别。当我第一次建造的时候,一切都很好。当我对users.ts文件进行任何后续的更改时,gulp-typescript编译总是失败,导致一个我无法理解的错误。类型记录编译器的错误是
> 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台机器上得到了这个错误。
更新:
这是回购以重现问题。复制步骤:
npm和jspm依赖项。gulp watch ->,不会发生错误。users.ts文件并保存->发生错误。UPDATE2:
在clean之前添加build-system步骤有助于避免问题。这是要提交的链接。不过,我还是不太清楚这个问题的实际原因。
发布于 2016-04-22 14:55:10
这是因为只有修改后的文件users.ts被发送到后续TS编译,而noResolve被启用(在tsconfig.json中)。
请参阅文件build/tasks/build.js,任务'build-system'
.pipe(changed(paths.output, {extension: '.js'}))通过比较输入文件的上一次修改时间和目标,确定(由gulp-changed)更改了哪些文件。因此,当您运行涉及clean或watch的clean时,将清除目标,并再次将所有文件发送到编译,因此不会出现错误。
当我尝试更新的框架应用程序(1.0.0-beta.1.2.2)时,这个问题已经解决了。
https://stackoverflow.com/questions/34629785
复制相似问题