दृश्य स्टूडियो में टाइपप्रति एएमडी मॉड्यूल

वोट
4

मैं टाइपप्रति Visual Studio 2012 परम का उपयोग कर के साथ शुरू कर रहा हूँ। मैं संकलक आदेश में --module AMD टैग सहित मेरी MSBuild बदल दिया है। संकलक एएमडी मॉड्यूल उत्पन्न करने के लिए शुरू कर दिया।

मैं Nuget संकुल से अपने प्रोजेक्ट RequireJS में शामिल है और मेरे मुख्य HTML इस पंक्ति में शामिल है:

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

मैं दो मॉड्यूल SiteMaster और प्रमाणित किया है। मॉड्यूल SiteMaster सरल है:

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

यह सिर्फ प्रमाणित मॉड्यूल का आयात करता है और समारोह रन कॉल ()। SiteMaster के लिए js इस तरह है:

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

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

})

समस्या यह है कि मैं त्रुटि प्राप्त जब मैं समाधान ब्राउज़ है:

Microsoft JScript runtime error: '__auth__' is undefined

इस समस्या का समाधान किस प्रकार से किया जा सकता है ???

अग्रिम में धन्यवाद।

06/10/2012 को 19:12
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
5

इस mvbaffa लाने के लिए धन्यवाद!

वैलेन्टिन के नमूने पर आप को SiteMaster.ts बदलते हैं:

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

मॉड्यूल घोषणा से बाहर इंपोर्ट स्टेटमेंट ले जाकर यह सही js कोड जनरेट करेगा। मैं टाइपप्रति codeplex साइट पर एक बग खोलना और यकीन है कि यह ठीक हो जाए, करेंगे। यदि यह आपके लिए एक अवरुद्ध मुद्दा है आप वर्तमान संकलक [v0.8] पर वैकल्पिक हल कर सकते हैं।

06/10/2012 को 22:51
का स्रोत उपयोगकर्ता

वोट
4

मैं काफी आश्वस्त हैं कि इस संकलक में कोई त्रुटि है हूँ। मैं निम्नलिखित स्रोत फ़ाइलों का उपयोग कर इस मुद्दे को पुन: किया है:

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>

मैं का उपयोग कर typescripts संकलन

tsc --module amd SiteMaster.ts Authenticate.ts

जब मैं खोलने test.htmlFirebug के साथ फ़ायरफ़ॉक्स में, मैं निम्नलिखित त्रुटि मिलती है:

ReferenceError: __auth__ is not defined
var auth = __auth__;

के लिए संकलित कोड SiteMaster.jsदिखता है इस प्रकार है:

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

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

})

टाइपप्रति की भाषा विनिर्देश अनुभाग से आंकना 9.4.3 एएमडी मॉड्यूल मैं की तर्ज पर कुछ उम्मीद होती है:

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

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

})

यह भाषा विनिर्देश में उदाहरण के साथ कतार में है। यदि दूसरे लोग इस बात से सहमत हैं, तो हम टाइपप्रति टीम को बग जमा करते हैं।

06/10/2012 को 21:10
का स्रोत उपयोगकर्ता

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