Javascript 将带有RequireJs和Grunt的TypeScript编译到单个文件中
我们正试图通过使用Grunt将包含许多文件的TypeScript项目编译成一个支持AMD的文件来优化它。我们已经研究了所有我们能在互联网上找到的东西,但仍在努力掌握这项任务。只要我们不使用外部导入,编译就可以正常工作,但一旦我们引用了外部库,编译过程就会失败。例如:Javascript 将带有RequireJs和Grunt的TypeScript编译到单个文件中,javascript,gruntjs,requirejs,typescript,Javascript,Gruntjs,Requirejs,Typescript,我们正试图通过使用Grunt将包含许多文件的TypeScript项目编译成一个支持AMD的文件来优化它。我们已经研究了所有我们能在互联网上找到的东西,但仍在努力掌握这项任务。只要我们不使用外部导入,编译就可以正常工作,但一旦我们引用了外部库,编译过程就会失败。例如: MyClass1.ts import jquery = require('jquery'); export class MyClass1{ //some code using jquery } MyClass2.ts i
import jquery = require('jquery');
export class MyClass1{
//some code using jquery
}
import jquery = require('jquery');
export class MyClass2{
//some other code using jquery
}
tsc --out singlefile.js ...
实际上不包括这两个文件。相反,它们将单独留下适当的RequireJsdefine
语句。我们知道,使用Grunt的requirejs任务可以将所有这些文件连接到一个文件中,但是这需要我们将import
语句放在内部项目中,而这些语句是不需要的
我们正在寻找的是一种连接所有TypeScript文件的方法,即它们捆绑所有需要的导入,并且它们包括一个define
块,该块具有收集到的所有类的所有外部依赖项
到目前为止,我们还没有找到将多个define
语句优化为单个define块的Grunt任务。我们可以看到两种策略:
import
语句(例如,在上面的示例中,MyClass1
和MyClass2
都依赖于jquery),这会导致TypeScript编译错误define
块缩减为单个块