问题:有没有办法使用AMD支持(通过编译器)将jquery导入TypeScript模块,所以它包含jquery作为依赖项?
关键是获取import语句,这使得模块成为define语句中的依赖项(见下文)。
define(["require", "exports", 'dataservice', 'jquery', 'knockout'],
function(require, exports, __ds__, $ , ko) {
...
}
)
详情:
我想将jquery(和其他第三方库)导入为AMD的TypeScript模块。目标是使它们在require
列表中显示为依赖项。但是,使TypeScript执行此操作的唯一方法似乎是拥有import
语句。要导入,您需要导入模块。但是......没有jquery模块可以指向。
到。
变通方法:
所以现在我只是在main.js中预加载jquery。但又一次,但这不太理想。必须为任何没有模块的淘汰赛,骨干网等图书馆做到这一点。
有什么更好的建议或我遗漏的东西?
更新/澄清:
我也可以在配置中使用shims来实现库之间的依赖关系。但这仍然预先加载第三方。例如:
require.config({
baseUrl: '../',
paths: {
'jquery': 'lib/jquery-1.7.2',
'underscore': 'lib/underscore'
},
shim: {
jquery: {
exports: '$'
},
underscore: {
exports: '_'
}
}
});
答案 0 :(得分:4)
另一个解决方法是使用requirejs的类型定义并使用您自己的require
语句,而不是import
语句。
这样做的缺点是TypeScript import
可以与AMD或CommonJS一起使用而只需更改编译器,因此您将在程序中将requirejs与import
结合起来。