有几个Javascript文件,组织在文件夹Scripts / folder1,Scripts / folder2,...
使用requirejs.config.baseUrl将文件夹定义为默认文件夹,例如Scripts / folder1。然后在requirejs.config.paths中,一些文件仅使用文件名进行寻址,一些文件使用相对路径进行寻址(如../ folder2 / blabla)。
编码Typescipt文件folder2 / blabla.ts时,我们需要来自folder1的模块“math”。所以我们写了
import MOD1 = module("../folder1/math");
关于打字稿,任何事都可以。它可以找到模块。但是,有了requirejs就会出现问题。它不知道模块“../folder1/math”,它只知道“数学”。
问题似乎是import语句需要一个文件名,从当前目录开始处理。但是,这不是requirejs知道的模块ID。
在requirejs配置和Typescript中的import语句中的任何地方使用绝对路径可以解决问题。
我这样做错了吗?或者是绝对的路径?
答案 0 :(得分:7)
指定baseUrl
等同于Typescript文件的根文件夹:
require.config({
baseUrl: './scripts',
}
)
然后,当您使用从scripts文件夹开始的相对路径时,您可以像通常在typescript中那样进行导入,而requirejs将使用相同的基本路径。
更新:此演示文稿应该回答所有来自Typescript问题的网址/使用js:http://www.youtube.com/watch?v=4AGQpv0MKsA,代码为:https://github.com/basarat/typescript-amd/blob/master/README.md
答案 1 :(得分:2)
在您需要配置时,为每个模块指定路径。那应该解决路径问题:
require.config({
paths: {
jquery: 'libs/jquery-1.7.1.min',
jqueryui: 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min'
// Other modules...
}
});