Requirejs 从迁移1.0.3到1.1或更高版本中断的导入语句
在AMD模式中使用typescript,导入语句从版本1.0.3中断为1.1 目录结构:Requirejs 从迁移1.0.3到1.1或更高版本中断的导入语句,requirejs,typescript,amd,Requirejs,Typescript,Amd,在AMD模式中使用typescript,导入语句从版本1.0.3中断为1.1 目录结构: 电池包括/TextWriter.ts BatteryIncluded/Registry.ts 代码注册表.ts: import TextWriter = require("BatteryIncluded/TextWriter"); class Registry <ValueType> { // etc... } export = Registry; 在typescript版本1.
- 电池包括/TextWriter.ts
- BatteryIncluded/Registry.ts
import TextWriter = require("BatteryIncluded/TextWriter");
class Registry <ValueType> {
// etc...
}
export = Registry;
在typescript版本1.0.3中,不会发生此错误。但在版本1.1或更高版本中,错误为:
"C:/Program Files/nodejs/node.exe" C:\PROJECT_GIT\TypeScript\built\local\tsc.js --sourcemap -- target ES5 --module AMD Registry.ts
Registry.ts(2,29): error TS2307: Cannot find external module 'BatteryIncluded/TextWriter'.
以以下形式使用typescript:
node C:\PROJECT_GIT\TypeScript\built\local\tsc.js --sourcemap --target ES5 --module AMD $FileName$
要解决此问题,我可以使用import语句:
import TextWriter = require("./TextWriter");
这是不需要的,因为我需要对所有深度嵌套的文件执行以下操作:
import TextWriter = require("../../../TextWriter");
在此之前,您可以使用:
import TextWriter = require("BatteryIncluded/TextWriter");
我在TypeScript GitHub Repo上搜索了可能暗示此错误的版本更改,但找不到任何更改 我刚刚下载了TypeScript1.1来测试它,它对我来说很有用-唯一的区别是我的入口点是根目录中的
app.ts
,它加载batteryInclude/Registry
,然后加载batteryInclude/TextWriter
,并且编译得很好
我想,如果您将编译器指向BatteryIncluded/Registry
,它可能会假定这是根,这将使路径无效。我测试了这个理论,它对我来说也很好
唯一剩下的区别是我是从命令行编译的
-也许您可以让他们看看您是否遇到任何问题(本例中的嵌套文件夹名称为nested
)
import TextWriter = require("BatteryIncluded/TextWriter");