2014-03-26 94 views
0

我刚刚开始打字稿,我试图设置一个多页的amd应用程序。Typescript - 加载不导出的模块

由requirejs队我有了我的所有requirejs CONFIGS,前一个common.ts文件中提供的setup直列保持:

// common.ts 
require.config({ 
    paths: { 
     'backbone': 'lib/backbone' 
     , 'jquery': 'lib/jquery' 
     , 'underscore': 'lib/underscore' 
    } 
}); 

然后我加载requirejs使用以下脚本标签:

<script data-main="http://blah/page1.js" src="http://blah/require.js"></script> 

按照requirejs针对多页面应用程序的建议中的指示,然后从blah/page1.js中加载common.ts,这就是我开始遇到麻烦的地方。

什么是导入commont.ts文件的正确方法?

我还没有运气import requireConfig = require('common');,因为我没有从common.ts导出任何东西。但是,当我尝试导出任何东西时,即使是来自common.ts的虚拟值,它最终也会将require.config()调用包装在模块定义函数中,该模块定义函数会使用requirejs来破解东西。

我参加了一个远射试图使用它,但/// <reference path="common.ts"/>加载过程失败

我也试图消除import声明,只是调用require('common')但失败Could not find symbol 'require'

是编译的有一些方法可以加载common.ts,即使它不导出任何东西?

回答

-1

你不应该加载需要配置文件作为外部模块。您应该使用data-main并将其指向该文件。举一个例子看http://youtube.com/watch?v=KDrWLMUY0R0

这个文件应该是你的应用程序主入口点

+0

对不起,我遗漏了详细信息并将更新,但是,我正在使用数据主属性。只有,根据requirejs multipage建议(链接到我的问题),我的数据主文件是加载配置的文件。 – uglymunky

1

你不能import一个文件,除非你从一个文件export东西,不能export你从一个文件,而不是把它包起来的当您为amd进行编译时,可以使用define

+0

我很害怕,感谢@basarat – uglymunky

0

对于任何人想出现这个问题,跟进@basarat's answer(基本上,我试图做的是不可能的)我已经能够通过添加我的requirejs配置设置来解决我的问题(例如,将会有共同之处.ts)根据requirejs docs中提供的说明内嵌在我的html模板文件中。

所以,我的HTML看起来像:

<script> 
    var require = { 
      paths: {...} 
      , shims: {...} 
    }; 
</script> 

<script src="scripts/require.js"></script> 

不理想,但它似乎越来越现在所做的工作。