2016-01-20 14 views
6

मैं कुछ एप्लिकेशन बनाने के लिए AngularJS और टाइपप्रति उपयोग कर रहा हूँ की आवश्यकता नहीं है, मैं इस त्रुटि के साथ एक दिक्कत यह है कि मैंUncaught ReferenceError: निर्यात में परिभाषित किया गया और

यहाँ समाधान नहीं कर सकते हो रही है मेरी * .ts कोड है

export var NgApp = new application.Startup(); 

///<reference path="../../../../../typings/tsd.d.ts"/> 
import {NgApp} from "../../bootstrap"; 



module views.components.home { 
    export class HomeComponent { 
     public constructor() { 
     } 

     public static factory():Function[] { 
      return [ 
       () => new HomeComponent() 
      ] 
     } 

    } 

} 

NgApp.registerComponents(views.components.home,() => this.app.controller); 

यहाँ मेरी Gulp कार्य

let tsResult = gulp.src('src/**/*.ts').pipe(ts({ 
    module: 'commonjs', 
    sourceMap: true 
})); 

let taskTs = tsResult.js.pipe(gulp.dest('built/')); 

है यह मेरा त्रुटि है: Uncaught ReferenceError: निर्यात

परिभाषित नहीं है

सवाल यह है कि: मैं टाइपस्क्रिप्ट में es6 जैसे आयात का उपयोग कैसे कर सकता हूं? मुझे क्या याद आ रहा है

+1

मॉड्यूल के साथ संकलन करने का प्रयास करें: "amd" – Amid

+0

@Amid nope यह – IamStalker

+0

में मदद नहीं करता है मुझे लगता है कि आपके पास अपने वेब पेज पर system.js का एक लिंक है। आप मॉड्यूल के साथ संकलन करने का भी प्रयास कर सकते हैं: जैसा कि कोणीय 2 क्विकस्टार्ट मार्गदर्शिका में बताया गया है। – Amid

उत्तर

10

मैं कोणीय 1.6 और webpack उपयोग करते हैं, यह मेरी तरफ से काम करता है जब मैं करने के लिए "UMD"

UMD: Universal Module Definition This has brought about the push for a “universal” pattern that supports both styles (AMD and CommonJS)

reference: http://davidbcalhoun.com/2014/what-is-amd-commonjs-and-umd/

यहाँ चिपकाया मेरी tsconfig.json के बाद मैं इसे बदल मॉड्यूल बदल गया है, मैं $ tsc

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "umd", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": [ "es2015", "dom" ], 
    "noImplicitAny": true, 
    "removeComments": true, 
    "preserveConstEnums": true, 
    "allowUnreachableCode": true 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

फिर मेरे "निर्यात से परिभाषित नहीं है" त्रुटि चला गया है चलाते हैं।

0

How can I use import like es6 in typescript? What I am missing?

आपको मॉड्यूल लोडर का उपयोग करने की आवश्यकता है। https://github.com/AngularClass/angular2-webpack-starter

+0

क्षमा करें दोस्त मैं angularjs 1.5 का उपयोग करता हूं और वास्तव में वेबपैक से वास्तव में परिचित नहीं हूं, क्या मैं मॉड्यूल लोड करने के लिए समान क्षमताओं के साथ systemjs का उपयोग कर सकता हूं? – IamStalker

+0

आप कर सकते हैं। लेकिन यह बहुत अधिक खून बह रहा है (और मेरे लिए अनावश्यक है क्योंकि वेबपैक पहले से ही मुझे वह सब कुछ करता है जो मुझे चाहिए) – basarat

2

click here "हल अंततः" मैं भी एक ही त्रुटि मैं मॉड्यूल बदल रही थी: यहां एक नमूना webpack का उपयोग करता है कि "commonjs" से "मॉड्यूल": "ES6", क्योंकि लक्षित कर ES5 आयात/निर्यात बयान निकालने के लिए, इसलिए ये उपकरण अप्रयुक्त निर्यात को हटा नहीं सकते हैं।

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "es6", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": [ "es2015", "dom" ], 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true 
    } 

} 
संबंधित मुद्दे