2013-01-09 41 views
0

我不知道這是否是已知問題。我正在與VS 2012 Web Express與Typescript 0.8.1.1合作。我正在使用--module AMD子句來生成AMD模塊。TypeScript在發佈模式下生成錯誤的JS

IIN調試模式編譯器生成這樣的確定子句:

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__) ... 

當我在Release模式編譯器生成的代碼是這樣的:

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") 

即在Release模式被生成代碼爲CommonJS模塊而不是AMD模塊。

有沒有辦法讓它工作?

在此先感謝

回答

3

我猜你這樣做:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> 
    <TypeScriptSourceMap> --sourcemap --module amd</TypeScriptSourceMap> 
    </PropertyGroup> 

請注意,此塊僅被包含在調試配置。你想要做的是在調用編譯器的文件中移動--module amd的東西。

<Target Name="BeforeBuild"> 
    <Message Text="Compiling TypeScript files" /> 
    <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" /> 
    <Exec Command="tsc$(TypeScriptSourceMap) --module amd @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" /> 
    </Target> 
+0

就是這樣。非常感謝你 – mvbaffa

相關問題