2016-01-28 28 views
7

का उपयोग कर अपने परीक्षण फ़ाइल जहाँ मैं परीक्षण मामलों में लिखा है में परीक्षण, मैं नीचे की तरह एक टाइपप्रति फ़ाइल आयात किया है:अप्रत्याशित आरक्षित शब्द त्रुटि जबकि छोटा कंगारू

import {rootReducer} from "../src/reducers/rootReducer"; 

rootReducer.ts में मैं नीचे की तरह एक और टाइपप्रति फ़ाइल आयात किया है :

import taskReducer from "./taskReducer.ts"; 

तो यह त्रुटि दिखाता है:

SyntaxError: Unexpected reserved word 
at src/reducers/rootReducer.ts:7 

दोनों rootRe ducer.ts और taskReducer.ts फ़ोल्डर/src/reducers के अंतर्गत आते हैं

यदि आप आयात कथन से '.ts' को हटाते हैं तो कोई असफल परीक्षण नहीं होता है, लेकिन ब्राउज़र में त्रुटि फेंकता है। एप्लिकेशन तो नहीं चलेगा

छोटा कंगारू विन्यास के रूप में नीचे है:

module.exports = function (wallaby) { 

    return { 
     files: [ 
      'src/*.ts', 
      'src/**/*.ts' 
     ], 

     tests: [ 
      'test/*Test.ts' 
     ], 

     testFramework: "mocha", 

     env: { 
      type: 'node' 
     }, 

     compilers: { 
      '**/*.ts': wallaby.compilers.typeScript({ 
       /* 1 for CommonJs*/ 
       module: 1 
      }) 
     } 
    } 
}; 
+0

आप यकीन है कि यह है क्योंकि आप 2 आयात में {} की कमी है नहीं है कर रहे हैं? यह एक वाक्यविन्यास त्रुटि की तरह दिखता है। – toskv

+1

मैंने दूसरे आयात में {} जोड़ने की कोशिश की थी। अभी भी एक ही त्रुटि दिखाता है। मुझे लगता है कि मैं wallaby कॉन्फ़िगरेशन में कुछ चूक गया, क्योंकि जब मैं '.ts' एक्सटेंशन को हटा देता हूं, तो कोई wallaby त्रुटि नहीं होती है –

+0

आपको आयात से '.ts' को हटाने की आवश्यकता है, अन्यथा आप अपनी टाइपस्क्रिप्ट फ़ाइल को जावास्क्रिप्ट के रूप में लोड कर रहे हैं , इसलिए त्रुटि। –

उत्तर

2

अपने बयान:

import taskReducer from "./taskReducer.ts"; 

या तो होना चाहिए:

// Import just taskReducer from this module 
import {taskReducer} from "./taskReducer"; 

या:

// Import the whole module and call it taskReducer 
import * as taskReducer from "./taskReducer"; 
+1

इन दोनों का प्रयास किया। अभी भी एक ही त्रुटि दिखाता है। अगर मैं '.ts' एक्सटेंशन को हटा देता हूं, तो wallaby कोई त्रुटि नहीं दिखाता है। लेकिन ब्राउजर त्रुटि फेंकता है और ऐप –

+0

काम नहीं करेगा @DixyXavier आपको .ts फ़ाइल की आवश्यकता नहीं है .. मॉड्यूल लोडर को rune समय पर .js फ़ाइल लोड करनी चाहिए। : -/ – toskv

+0

यदि मैं आयात से .ts को हटा देता हूं, तो ब्राउज़र टीएस की बजाय अपनी जेएस फ़ाइल पढ़ेगा जो कुछ मुद्दों का कारण बनता है और ऐप ब्राउज़र में काम नहीं करेगा। क्या कोई रास्ता है जहां मैं इसे दोनों दीवारों के साथ-साथ ब्राउज़र में भी काम कर सकता हूं? –

2

समस्या wallaby.js में नहीं है, लेकिन आपकी वेबपैक कॉन्फ़िगरेशन में है। विस्तार निर्दिष्ट किए बिना की आवश्यकता होती है फ़ाइलों को सक्षम करने के लिए, आप एक resolve.extensions पैरामीटर निर्दिष्ट करना है जिसके लिए webpack खोज फ़ाइलें जोड़ना होगा:

// webpack.config.js 
module.exports = { 
    ... 
    resolve: { 
    // you can now require('file') instead of require('file.ts') 
    extensions: ['', '.js', '.ts', '.tsx'] 
    } 
}; 
+0

धन्यवाद आर्टम। तुम हमेशा मेरे उद्धारक हो :) –

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