如何在带有Requirejs的Typescript中使用模块/类

如何在带有Requirejs的Typescript中使用模块/类,typescript,requirejs,dynamics-crm,Typescript,Requirejs,Dynamics Crm,我正试图从MS CRM中开始使用RequireJs,但对于如何在当前的TypeScript文件中使用RequireJs,我感到困惑 目前,CRM中的每个表单都有自己的Typescript文件,该文件如下所示: //文件路径。\\u Contoso\scripts\Contact.ts 模块Contoso{ 出口类联系人{ 私有静态实例=新联系人(); //#区域形状属性 静态字段={} //#端域形状属性 //#区域onLoad/onSave 静态onLoad():void{ Contact.i

我正试图从MS CRM中开始使用RequireJs,但对于如何在当前的TypeScript文件中使用RequireJs,我感到困惑

目前,CRM中的每个表单都有自己的Typescript文件,该文件如下所示:

//文件路径。\\u Contoso\scripts\Contact.ts
模块Contoso{
出口类联系人{
私有静态实例=新联系人();
//#区域形状属性
静态字段={}
//#端域形状属性
//#区域onLoad/onSave
静态onLoad():void{
Contact.instance.onLoad();
}
私有onLoad=():void=>{…}
静态onSave():void{Contact.instance.onSave();}
private onSave=():void=>{…}
//#endregion onLoad/onSave
}
}
每个文件可能包含对一个或多个常见文件/类的依赖关系:

//文件路径。\\u Abc\scripts\CommonLib.ts
美国广播公司{
导出类CommonLib{
... 
}
}
//文件路径。\\u Abc\scripts\RestLib.ts
美国广播公司{
导出类RestLib{
... 
}
}
//文件路径。\\u Abc\scripts\RoleLib.ts
美国广播公司{
出口级RoleLib{
... 
}
}
这些文件目前都位于VS网站项目中。每当我保存ts文件时,它都会生成JS,我会将这些文件部署到CRM

现在,输入RequireJS。由于CRM for JS文件执行中唯一支持的开始钩子是“OnLoad”和“onSave”事件,因此我创建了一个Contoso.Require文件,该文件将从CRM OnLoad函数调用中读取Require配置,然后在表单脚本上调用相应的OnLoad方法。这一切都是为了加载主窗体JS,并调用onLoad函数。我的问题是我必须在CRM OnLoad事件中定义所需的JS文件,而不是让每个文件定义它所需的文件。如何定义每个类/文件需要哪些文件

而不是让每个文件定义它所需要的文件

你仍然需要这样做。因为这就是推动订单的原因

但是现在不再使用
模块
(现在称为名称空间),而是使用
导入/导出
格式来使用真正的模块

更多

我对这个问题不是很确定,但希望通过反复思考,问题会变得清晰起来。无论您在哪里使用require.js,都需要明确地包含require.js。因此,对于CRM表单,您必须添加对require.js和contact.js的引用。在coding contact.js中添加
//
(使用正确的路径),然后在OnLoad函数中使用
import somemodule=require('./somemodule')(再次使用正确的路径。)我想,我从你的问题中遗漏了一些东西-但希望通过反复的讨论,它会变得更清晰。所以我需要切换到AMD Typescript编译,然后我需要导出我的模块并为每个文件导入它们?我已经有了它的javascript注释,所以我可能可以运行并进行搜索和替换。只是想确定我是在找对树。。。