2017-04-17 16 views
7

मैं एक नई प्रतिक्रिया प्रोजेक्ट शुरू करता हूं और मैं परीक्षण प्लेटफ़ॉर्म के रूप में जेस्ट का उपयोग करना चाहता हूं। डॉक्स, ब्लॉग और कई अन्य संसाधनों जैसे स्टैक ओवरफ्लो के बावजूद, मेरे पास हमेशा एक "अप्रत्याशित टोकन आयात" त्रुटि होती है जो शायद किसी समस्या की समस्या से संबंधित है, लेकिन मेरा conf ठीक लगता है। किसी भी मदद का स्वागत है।जेस्ट, अप्रत्याशित टोकन आयात

मेरा जेस्ट conf (package.json में)।

{ 
    "presets": [ 
    ["es2015", { "modules": false }], 
    "react" 
    ], 
    "plugins": [ 
    ["react-hot-loader/babel"], 
    ["transform-object-rest-spread", { "useBuiltIns": true }], 
    ["transform-runtime"] 
    ], 
    "env": { 
     "test": { 
     "presets": ["es2015", "react"] 
     } 
    } 
} 

मेरे कल्पना फ़ाइल:

मेरे package.json कोलाहल-हंसी, कोलाहल-पूर्व निर्धारित-es2015, कोलाहल-पूर्व निर्धारित प्रतिक्रिया, आदि

"jest": { 
    "testMatch": [ 
     "**/?(*.)spec.js?(x)" 
    ], 
    "moduleDirectories": [ 
     "src", 
     "node_modules" 
    ], 
    "moduleNameMapper": { 
     "^lib/(.*)$": "<rootDir>/src/lib/$1", 
     "^components/(.*)": "<rootDir>/src/components/$1", 
    }, 
    "transform": { 
     "^.+\\.jsx?$": "babel-jest" 
    } 

मेरे .babelrc conf की तरह निर्भरता है

import Container from './container.jsx'; 
... 
012:
import React from 'react'; 
import Radio from 'components/ui/radio'; 
... 

और घटकों/ui/रेडियो (आयात त्रुटि पहली पंक्ति पर उठाया है)

मेरे वेबपैक में दो उपनाम हैं जिनमें lib और घटक हैं (जेस्ट में मॉड्यूलनाममेपर के रूप में परिभाषित करें)।

... 
resolve: { 
    mainFiles: ['index', 'main'], 
    extensions: ['.js', '.jsx'], 
    alias: { 
    lib: helpers.getPath('src/lib/'), 
    components: helpers.getPath('src/components/'), 
    }, 
    modules: [ 
    helpers.getPath('src'), 
    helpers.getPath('node_modules'), 
    ], 
}, 
... 

उत्तर

3

मेरे पास एक बहुत ही समान समस्या थी और अंत में मैंने इसे जेस्ट चलाने पर --no-cache का उपयोग करके हल किया।

मैं भी कोलाहल-हंसी, कोलाहल-पूर्व निर्धारित-es2015, कोलाहल-पूर्व निर्धारित प्रतिक्रिया, आदि

jest --no-cache 
+0

+1 की तरह मेरे package.json निर्भरता में था। आप बस यह भी विचार करना चाहेंगे: 'npm i babel-preset-env --save-dev' और पैकेज.जेसन में अपने बेबेल प्रीसेट सूची में 'env" 'जोड़ना। फिर आप प्रीसेट सूची में उन्हें जोड़ने के बिना, जो भी प्रीसेट की आवश्यकता है उसे इंस्टॉल कर सकते हैं। – Jonathan

+0

मेरे पास यह वही समस्या थी, और 'जेस्ट - नो-कैश' ने इसे ठीक नहीं किया, लेकिन यह मेरे/node_modules फ़ोल्डर और मेरी पैकेज-lock.json फ़ाइल को हटा रहा था और फिर से चल रहा था 'npm i '। मुझे लगता है कि ऐसा इसलिए हुआ क्योंकि जब मैंने मूल इंस्टॉल किया था तो मेरे पास सक्रिय नोड का एक अलग संस्करण था। (मैं स्विच करने के लिए एनवीएम का उपयोग करें।) अपने नोड संस्करण की जांच करें! – Jonathan

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