我不知道这是否是一个已知问题。我正在使用带有Typescript 0.8.1.1的VS 2012 Web Express。我使用--module AMD子句来生成AMD模块。
Iin Debug模式,编译器生成如下的define子句:
define(["require", "exports", "app/Config", "app/ModelLocator", "app/Presenter", "app/Messenger", "app/LogOnWindow", "app/vm/VmAppHeader", "app/framework/PageLocator", "app/framework/ViewStacks"], function(require, exports, __cfg__, __ml__, __pr__, __ms__, __rc__, __lw__, __ah__, __pl__, __vs__) ...
当我在发布模式下编译时,生成的代码是:
var cfg = require("./app/Config")
var ml = require("./app/ModelLocator")
var pr = require("./app/Presenter")
var ms = require("./app/Messenger")
var rc = require("./app/RouteConfig")
var lw = require("./app/LogOnWindow")
var ah = require("./app/vm/VmAppHeader")
var pl = require("./app/framework/PageLocator")
var vs = require("./app/framework/ViewStacks")
即在发布模式下,它正在为CommonJS模块而不是AMD模块生成代码。
有没有办法让它发挥作用???
提前致谢
答案 0 :(得分:3)
我猜你这样做了:
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptSourceMap> --sourcemap --module amd</TypeScriptSourceMap>
</PropertyGroup>
请注意,此块仅包含在Debug配置中。你要做的是将--module amd
的东西移到调用编译器的文件中。
<Target Name="BeforeBuild">
<Message Text="Compiling TypeScript files" />
<Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
<Exec Command="tsc$(TypeScriptSourceMap) --module amd @(TypeScriptCompile ->'"%(fullpath)"', ' ')" />
</Target>