Loggfila AMD Moduler i Visual Studio

stemmer
4

Jeg begynner med Loggfila bruker Visual Studio 2012 Ultimate. Jeg har endret min MSBuild inkludert --module amd koden i kompilatoren kommandoen. Kompilatoren begynte å generere AMD moduler.

Jeg har inkludere i prosjektet mitt RequireJS fra nuget pakker og inkludere i min viktigste HTML denne linjen:

<script type=text/javascript data-main=scripts/SiteMaster  src=scripts/require.min.js></script>

Jeg har to moduler Site og godkjenne. Modulen Site er enkel:

export module SiteMaster {
    import auth = module(Authenticate);
    auth.Authenticate.run();
}

Det importerer bare Godkjenn modulen og kaller funksjonen run (). JS for Site er som dette:

define([require, exports], function(require, exports) {
(function (SiteMaster) {
    var auth = __auth__;

    auth.Authenticate.run();
})(exports.SiteMaster || (exports.SiteMaster = {}));

})

Problemet er at når jeg blar løsningen jeg får feil:

Microsoft JScript runtime error: '__auth__' is undefined

Hvordan kan jeg løse dette problemet ???

Takk på forhånd.

Publisert på 06/10/2012 klokken 18:12
kilden bruker
På andre språk...                            


2 svar

stemmer
5

Takk for å bringe dette opp mvbaffa!

På Valentin prøve hvis du endrer SiteMaster.ts til:

import auth = module("Authenticate");
export module SiteMaster {
    auth.Authenticate.run();
}

ved å flytte import uttalelsen ut av modulen erklæringen vil det generere riktig js kode. Jeg skal åpne en bug på Loggfila CodePlex området og sørge for at dette blir fikset. Du kan gjøre den midlertidige løsningen på dagens kompilatoren [v0.8] Hvis dette er en blokkering problem for deg.

Svarte 06/10/2012 kl. 21:51
kilden bruker

stemmer
4

Jeg er ganske mye overbevist om at dette er en feil i kompilatoren. Jeg har gjengitt saken ved hjelp av følgende kildefilene:

Authenticate.ts

export var Authenticate = { 
    run : function() {
        console.log("Run!");
    }
}

SiteMaster.ts

export module SiteMaster {
    import auth = module("Authenticate");
    auth.Authenticate.run();
}

test.html

<html>
    <head>
        <script type="text/javascript" data-main="SiteMaster"  src="http://requirejs.org/docs/release/2.1.0/minified/require.js"></script>
    </head>
    <body>
        <p>Test</p>
    </body>
</html>

Jeg kompilere maskinskrevne manuskripter hjelp

tsc --module amd SiteMaster.ts Authenticate.ts

Når jeg åpner test.htmli Firefox med Firebug, får jeg følgende feilmelding:

ReferenceError: __auth__ is not defined
var auth = __auth__;

Den kompilerte koden for SiteMaster.jsser ut som følger:

define(["require", "exports"], function(require, exports) {
    (function (SiteMaster) {
        var auth = __auth__;

        auth.Authenticate.run();
    })(exports.SiteMaster || (exports.SiteMaster = {}));

})

Ut fra Loggfila språkspesifikasjonen pkt 9.4.3 AMD Moduler jeg forventer noe langs linjene av:

define(["require", "exports", "authenticate"], function(require, exports, authenticateModule) {
    (function (SiteMaster) {
        var auth = authenticateModule;

        auth.Authenticate.run();
    })(exports.SiteMaster || (exports.SiteMaster = {}));

})

Dette er i samsvar med eksemplene i språkspesifikasjonen. Hvis andre er enige, kan vi sende inn en bug med Loggfila team.

Svarte 06/10/2012 kl. 20:10
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more