引用我的 TypeScript 模块时出错 TS2307:找不到模块
Error referencing my TypeScript modules TS2307: Cannot find module
我正在使用 aurelia-typescript-skeleton
作为我新项目的基础。我尝试在 src
文件夹
中添加一个新的 hello.ts
文件
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
时,都没有错误。当我 edit/change users.ts
文件时出现错误。谁能帮我理解这个错误?它必须是基本的东西...
我在 Windows 7 环境下,我在 2 台机器上遇到这个错误。
更新:
这里是repo to reproduce the problem。重现步骤:
- 克隆存储库,安装所有
npm
和 jspm
依赖项。
- 运行
gulp watch
-> 我没有出现错误
- 更改
users.ts
文件并保存 -> 发生错误。
更新 2:
在 build-system
之前添加 clean
步骤有助于避免该问题。这里是the link to commit。我仍然不确定第一手问题的实际原因。
因为只有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) 时,这个问题已得到修复。
我正在使用 aurelia-typescript-skeleton
作为我新项目的基础。我尝试在 src
文件夹
hello.ts
文件
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
时,都没有错误。当我 edit/change users.ts
文件时出现错误。谁能帮我理解这个错误?它必须是基本的东西...
我在 Windows 7 环境下,我在 2 台机器上遇到这个错误。
更新:
这里是repo to reproduce the problem。重现步骤:
- 克隆存储库,安装所有
npm
和jspm
依赖项。 - 运行
gulp watch
-> 我没有出现错误 - 更改
users.ts
文件并保存 -> 发生错误。
更新 2:
在 build-system
之前添加 clean
步骤有助于避免该问题。这里是the link to commit。我仍然不确定第一手问题的实际原因。
因为只有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) 时,这个问题已得到修复。