मोचा परीक्षण चलाने पर बेबल अप्रत्याशित टोकन आयात


92

अन्य संबंधित प्रश्नों में दिए गए समाधान, जैसे कि उचित प्रीसेट्स (es2015) में .babelrc शामिल हैं, मेरी परियोजना में पहले से ही लागू हैं।

मेरे पास दो परियोजनाएं हैं (उन्हें ए और बी कहते हैं) जो दोनों ईएस 6 मॉड्यूल सिंटैक्स का उपयोग करते हैं। प्रोजेक्ट ए में, मैं प्रोजेक्ट बी आयात कर रहा हूं जो npm के माध्यम से स्थापित है और नोड_मॉडल फ़ोल्डर में रहता है। जब मैं प्रोजेक्ट A के लिए अपना परीक्षण सूट चलाता हूं, तो मुझे त्रुटि मिल रही है:

SyntaxError: अप्रत्याशित टोकन आयात

प्रोजेक्ट B के इस कथित गलत लाइन कोड से पहले कौन है:

(फ़ंक्शन (निर्यात, आवश्यकता, मॉड्यूल, __filename, __dirname) {आयात createBrowserHistory से H इतिहास / lib / createBrowserHistory ’;

Iife कुछ npm या संभवतः बाबेल से संबंधित प्रतीत होता है, क्योंकि मेरे स्रोत फ़ाइल में केवल "इतिहास / lib / createBrowserHistory 'से आयात createBrowserHistory शामिल है; प्रोजेक्ट B के परीक्षण सूट में इकाई परीक्षण ठीक चलता है, और यदि प्रोजेक्ट B को एक निर्भरता के रूप में हटा दें; प्रोजेक्ट ए, मेरा परीक्षण सूट (फिर भी आंतरिक परियोजना मॉड्यूल के लिए es6 आयात का उपयोग करके) ठीक काम करता है।

पूर्ण स्टैक ट्रेस:

 SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Module._extensions..js (module.js:405:10)
    at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:138:7)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (actionCreators.js:4:17)
    at Module._compile (module.js:398:26)
    at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
    at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/ProjectA/src/components/core/wrapper/wrapper.js:28:23)
    at Module._compile (module.js:398:26)
    at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
    at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/ProjectA/src/components/core/wrapper/wrapperSpec.js:15:16)
    at Module._compile (module.js:398:26)
    at loader (/ProjectA/node_modules/babel-register/lib/node.js:130:5)
    at Object.require.extensions.(anonymous function) [as .js] (/ProjectA/node_modules/babel-register/lib/node.js:140:7)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at /ProjectA/node_modules/mocha/lib/mocha.js:219:27
    at Array.forEach (native)
    at Mocha.loadFiles (/ProjectA/node_modules/mocha/lib/mocha.js:216:14)
    at Mocha.run (/ProjectA/node_modules/mocha/lib/mocha.js:468:10)
    at Object.<anonymous> (/ProjectA/node_modules/mocha/bin/_mocha:403:18)
    at Module._compile (module.js:398:26)
    at Object.Module._extensions..js (module.js:405:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:430:10)
    at startup (node.js:141:18)
    at node.js:980:3

यहाँ पैकेज से मेरा परीक्षण आदेश है। आगजनी:

"test": "mocha --compilers js:babel-core/register '+(test|src)/**/*Spec.js'"

यह StackOverflow पोस्ट समान है, लेकिन कमांड लाइन के मेरे उपयोग के लिए कोई समाधान प्रस्तुत नहीं करता है: babel के साथ node_modules से एक मॉड्यूल आयात करें लेकिन विफल रहा


1
यदि आप npm पर एक मॉड्यूल वितरित कर रहे हैं, तो आपको केवल उस मॉड्यूल के ट्रांसप्लड किए गए संस्करण को वितरित करना चाहिए।
loganfsmyth

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

2
मुझे लगता है कि आप bab.el को package.json में कॉन्फ़िगर करना भूल जाते हैं। उन लोगों को अपने पैकेज में जोड़ें। "बाबेल": {"प्रीसेट": ["es2015"]}
याकूब

3
नोट: प्रलेखन के अनुसार --compilers आवश्यक नहीं है, --require babel-registerइसके बजाय का उपयोग किया जाना चाहिए: "यदि आपके ES6 मॉड्यूल में एक्सटेंशन .js है, तो आप npm स्थापित कर सकते हैं - save-dev babel-register और mocha --require babel-register; केवल तभी आवश्यक है जब आपको फ़ाइल एक्सटेंशन निर्दिष्ट करने की आवश्यकता हो। "
-कैच-अंततः

1
अंत में मैं यह काम करने में सक्षम था "babel":{"presets": ["es2015"]}इसका उपयोग करके मैं आखिरी चीज़ गायब था!
ब्रेंडन

जवाबों:


79

बबेल के लिए <6

इस समस्या को हल करने का सबसे आसान तरीका है:

  1. npm install babel-preset-es2015 --save-dev
  2. .babelrcसामग्री के साथ परियोजना की जड़ में जोड़ें :

    {
     "presets": [ "es2015" ]
    }
    

सुनिश्चित करें कि आप "- माइक्रोमैक्स जेएस: बेबल-कोर / रजिस्टर" पैरामीटर के साथ मोचा चला रहे हैं।

बबेल 6/7 + के लिए

  1. npm install @babel/preset-env --save-dev
  2. .babelrcसामग्री के साथ परियोजना की जड़ में जोड़ें :

    {
     "presets": [ "@babel/preset-env" ]
    }
    

सुनिश्चित करें कि आप --compilers js:babel-register(बैबल 6) या --compilers js:@babel/register(बैबल 7) पैरामीटर के साथ मोचा चला रहे हैं

मोचा संस्करण 7 या बाद के लिए, क्रमशः --require babel-registerया उपयोग करें --require @babel/register


27
मोके चलाने की कोशिश करें
क्रेक बबैल

2
@kolec यह काम करता है। हालांकि इससे भी बेहतर, एक mocha.optsफाइल को रूट / टेस्ट डायरेक्टरी के रूट में बनाएं और वहां जोड़ें
मार्टिन डॉसन

3
यह सब एक साथ अभी भी मदद नहीं करता है (कमांड-लाइन, नहीं mocha.opts)।
केव

3
यदि आप es2016 का उपयोग करना चाहते हैं, तो इस बात का ध्यान रखें कि बाबेल में es2016 "केवल संकलित है कि ES2016 में ES2015 में क्या है" इसलिए आपको अपने प्रीसेट एरे में es2016 और es2015 दोनों की आवश्यकता है
prauchfuss

4
--compilersअब पदावनत हो गया है। --requireइसके बजाय उपयोग करें ।
रोब्स

46

ऐसा लगता है कि एकमात्र समाधान स्पष्ट रूप से शामिल है:

require('babel-core/register')({
  ignore: /node_modules/(?!ProjectB)/
}); 

एक परीक्षण सहायक फ़ाइल में, और मेरे टेस्ट कमांड में मोचा के साथ पास करें:

mocha --require ./test/testHelper.js...

अंतिम समाधान:

जोड़े registerBabel.js : एक अलग फाइल जिनका काम कोलाहल कोर / रजिस्टर की आवश्यकता है ...

require('babel-core/register')({
  ignore: /node_modules/(?!ProjectB)/
});

यदि आपका आवेदन भी बेबल-नोड पर निर्भर करता है, तो एक प्रविष्टि जोड़ें । यह आपके es6 युक्त अनुप्रयोग के लिए एक आवरण के रूप में कार्य करता है।

require('./registerBabel');
require('./server'); // this file has some es6 imports

आप फिर से अपना एप्लिकेशन चलाएंगे node entry

मोचा परीक्षण के लिए, TestHelper.js को रजिस्टरबेल की आवश्यकता होनी चाहिए। साथ ही रन टाइम पर बेबल सपोर्ट को इनिशियलाइज़ करने के लिए।

require('./registerBabel');

और अपना मोचा टेस्ट चलाएं mocha --require ./testHelper.js '+(test)/**/*Spec.js'

यह "Spec.js" में समाप्त होने वाली किसी भी फ़ाइल का पुनरावर्ती परीक्षण "/ .est" में करेगा। अपनी परियोजना में ऐनक मिलान वाले पैटर्न को बदलें।


3
ऐसा लगता है कि ignoreरेगेक्स थोड़ा बंद है। मुझे नोड_मॉड्यूल के ठीक बाद एक बचने वाला बैकस्लैश जोड़ना था: ignore: /node_modules\/(?!ProjectB)/क्रम में काम करने के लिए babelRegister फ़ाइल के लिए। नहीं तो बहुत अच्छा लगता है!
नरकांत

यह हमें आवश्यकता विवरणों के कारण रोलअप का उपयोग करने की अनुमति नहीं देता है। क्या आप आवश्यकता बयानों का उपयोग किए बिना ऐसा करने का एक तरीका जानते हैं?
MikesBarto2002

यह बहुत अच्छा है, लेकिन उन उपकरणों के बारे में जो कोड को इस तरह जोड़ने की अनुमति नहीं देते हैं और अपनी फ़ाइलों को सीधे चलाना चाहते हैं। तो फिर तुम अंत के साथ babel-nodeजो इस तरह का उपयोग करने की अनुमति नहीं देता है .babelrc
एवगेनी

1
आपका कमाल! जब सर्वर चल रहा था तो बैबेल मेरा ईएस 6 कोड संसाधित कर रहा था, लेकिन मोचा परीक्षण विफल हो गया। आपके उत्तर ने इसे हल कर दिया। मैंने mocha.opts में --compilers की कोशिश की, लेकिन आयात के बयान विफल हो गए।
ऊर्जावान पिक्सेल 0

1
मुझे यह काम करने के लिए नहीं मिला, लेकिन यह पता चला कि मुझे अपने babelrc को बढ़ाने की भी आवश्यकता थी: `` `('@ babel / रजिस्टर') की आवश्यकता है ({फैलती है: './.babelrc', पर ध्यान न दें:] / (? ProjectB) /]}); `` `
TiggerToo

26

ठीक है कि आपके पास यह मुद्दा होगा, आप ईएस 6 का उपयोग कर रहे हैं जो मोचा नहीं जानता है

तो आप कोलाहल का उपयोग कर रहे हैं, लेकिन आप इसे अपने परीक्षण में उपयोग नहीं करते हैं ...

कुछ समाधान:

यदि आप एनपीएम उपयोग के साथ चल रहे हैं

"test": "mocha --compilers js:babel-core/register test*.js"

B. मैं उपयोग कर रहा हूं

"test": "./node_modules/.bin/mocha --compilers js:babel-core/register **/*spec.jsx"

C. सीएलआई से:

मोचा - माइक्रोमैक्स जेएस: बेबल-कोर / रजिस्टर टेस्ट * .js

आप http://www.pauleveritt.org/articles/pylyglot/es6_imports/ पर अधिक पढ़ सकते हैं


1
आपको बहुत - बहुत धन्यवाद! मुझे - कंपाइलर js: बबैल-कोर / रजिस्टर विकल्प
mycargus

1
मैं पहले से ही ऐसा कर रहा था ... क्या आपने प्रारंभिक प्रश्न भी पढ़ा है?
ThinkingInBits

1
@ThinkingInBits आपने क्या उपयोग किया, आप (यदि आपने) समस्या का समाधान कैसे किया? मुझे यहाँ बहुत परेशानी हो रही है, इन विकल्पों में से अधिकांश की कोशिश की
मिलान वेलेबिट

--compilersअब हटाई गई है, की तरह दिखता है --requireजाने के लिए एकमात्र विकल्प सुरक्षित है
अली Ghanavatian

23

मैं उसी मुद्दे में भाग गया। स्टेकेओवरफ़्लो पर और उससे परे हर दूसरे समाधान की कोशिश करने के बाद, पैकेज पर इस सरल विन्यास को जोड़ना। मेरे लिए यह काम किया:

  "babel": {
    "presets": [
      "es2015"
    ]
  }

मेरे सभी ES6 आयातों ने उसके बाद काम किया। वैसे, मेरे पास webpack.config.js के अंदर भी यही कॉन्फ़िगरेशन था, लेकिन जाहिरा तौर पर यह मोचा परीक्षण के लिए भी काम करने का एकमात्र तरीका था।

आशा है कि यह किसी की मदद करता है।


मेरे पास एक .babelrc फ़ाइल गलत थी, इसलिए यह शुरू में काम नहीं कर रही थी। यह समाधान काम करता है और अनुशंसित समाधान है। अपने प्रोजेक्ट में एक .babelrc फ़ाइल बनाएं और {"प्रीसेट": ["es2015"]} को जोड़ें
AfDev

14

मेरे पास {"modules": false}मेरी .babelrc फ़ाइल थी, जैसे:

"presets": [
    ["es2015", {"modules": false}],
    "stage-2",
    "react"
]

जो फेंक रहा था

अप्रत्याशित टोकन आयात

एक बार मैंने इसे हटा दिया, मोचा सफलतापूर्वक भाग गया।


यह रेलपैक द्वारा रेल के लिए उत्पन्न किया गया था: `` `'प्रीसेट': [[" एनवी ", {" मॉड्यूल ": गलत," लक्ष्य ": {" ब्राउज़र ":"> 1% "," बदसूरत ": सच} "useBuiltIns": true}], "रिएक्ट" `` `एक बार जब मैंने मॉड्यूल लाइन को हटा दिया, तो यह मेरे लिए काम कर गया।
खाली

इस समस्या ने मेरी समस्या को हल कर दिया जब सर्किलसीआई मेरी जेस्ट यूनिट परीक्षणों को चलाने में असफल रही और मुझे अप्रत्याशित टोकन त्रुटि दे दी। +1!
कैंडलजैक

इसने मेरे लिए यह किया। रेल, वेबपैकर, आदि ... धन्यवाद!
खाली

8

मेरे पास एक ही मुद्दा था और बाबेल को मोचा के साथ एकीकृत करने के लिए बेबल प्रलेखन से पढ़कर इसे ठीक किया :

{
  "scripts": {
    "test": "mocha --compilers js:babel-register"
  }
}

मोचा और बेबेल किस संस्करण के लिए?
ओग्यान दिमित्रोव

मेरे 6.26.0"babel-preset-env": "1.6.0""mocha": "3.5.3"
बबेल

अजीब। इससे मेरी समस्या हल हो गई और मेरे मामले में एक शुद्ध रीड-ऑफ-डॉक मुद्दा था।
ओग्यान दिमित्रोव

6

Babel 7 और Mocha 4 का उपयोग करने वाले किसी के लिए, पैकेज के कुछ नाम थोड़े बदल गए हैं और स्वीकृत उत्तर थोड़ा आउट-डेटेड है। मुझे क्या करना था:

npm install @babel/register --saveDev

और --require @babel/registerमें परीक्षण लाइन को जोड़नेpackage.json

"test": "./node_modules/mocha/bin/mocha --require @babel/polyfill --require @babel/register './test/**/*.spec.js'"

@babel/polyfillफिक्स async / इंतजार कार्यक्षमता की तरह कुछ चीजें आप उन का उपयोग करने की हो, तो।

आशा है कि किसी की मदद करता है :)


3

--compilers पदावनत किया गया है।

मेरा सरल समाधान:

npm install --save-dev babel-core

और package.json में अपनी टेस्ट स्क्रिप्ट इस तरह जोड़ें:

  "scripts": {
    "test": "mocha --require babel-core/register ./test/**/*.js -r ./test-setup.js"
  },

3

मैं यहाँ एक और ES6 + mocha + babel config उत्तर जोड़ रहा हूँ, जून '19 के अनुसार वर्तमान (उत्तर / टिप्पणी पर तारीखें देखें)। मोचा ने --compilerध्वज को हटा दिया है , और जो संस्करण मैं उपयोग कर रहा हूं --no-deprecation, वह ध्वज के साथ भी अनुपलब्ध है , इसे cf करें

ध्यान दें कि मैं लिंक किए गए पृष्ठों से सभी प्रासंगिक बिट्स को शामिल नहीं करूंगा, क्योंकि उनमें से कोई भी मुझे मोचा और बेबेल के नवीनतम संस्करणों के आधार पर एक स्वच्छ परीक्षण बिल्ड में नहीं मिला; इस उत्तर में उन चरणों को शामिल किया जाना चाहिए जो मुझे एक सफल परीक्षण निर्माण के लिए मिला।

यहां दिए गए निर्देशों का पालन करें, और इस उत्तर में , और यहां , मैंने यह स्थापित करने का प्रयास किया कि क्या उपयोग करने वाले न्यूनतम नवीनतम बेबल दिखाई दिए npm install:

$ npm install --save-dev mocha
$ npm install --save-dev @babel/preset-env

और मैंने पैकेज.जो में मोचा आह्वान को समायोजित किया, जैसे:

"scripts": {
    "test": "mocha --compilers js:@babel/register"
}

इसके कारण त्रुटियां हुईं:

× ERROR: --compilers is DEPRECATED and no longer supported.

जैसा कि ऊपर, --no-deprecationमदद नहीं की, कृपया ऊपर दिए गए पेज को देखें। इसलिए यहां से निर्देशों का पालन करते हुए मैंने पैकेज समायोजित किया। json:

"scripts": {
    "test": "mocha --require js:@babel/register"
}

और बाबेल मॉड्यूल के बारे में त्रुटियों को देखना शुरू कर दिया, जैसे:

× ERROR: Cannot find module '@babel/register'

इस बिंदु पर मैंने बाबेल पैकेज स्थापित करना शुरू कर दिया जब तक कि मैं प्रगति नहीं कर सका। मेरा मानना ​​है कि पूर्ण स्थापित कुछ इस तरह है:

$ npm install --save-dev @babel/preset-env @babel/register @babel/core

अंतिम परिवर्तन पैकेज में mocha आह्वान को अद्यतन करने के लिए किया गया था। इस प्रकार, js:उपसर्ग को हटाते हुए , जैसे:

"scripts": {
    "test": "mocha --require @babel/register"
}

मैं जवाब नहीं दे सकता कि यह क्यों आवश्यक था: यदि कोई इसका उत्तर दे सकता है तो कृपया टिप्पणी छोड़ें और मैं बेहतर जानकारी के साथ अपने उत्तर को अपडेट करूंगा।

आखिरी चीज जो मैंने की थी वह प्रोजेक्ट डायरेक्टरी में .babelrc, सामग्री के साथ बनाई गई थी:

{
    "presets" : ["@babel/preset-env"]
}

मुझे याद नहीं है कि इससे क्या संकेत मिला, लेकिन मेरा मानना ​​है कि ऐसा इसलिए हुआ क्योंकि मोचा ने importमेरे टेस्ट में कीवर्ड को न पहचानने की शिकायत जारी रखी। ऊपर के रूप में, अगर कोई इसका उत्तर दे सकता है तो कृपया एक टिप्पणी छोड़ दें और मैं बेहतर जानकारी के साथ अपने उत्तर को अपडेट करूंगा।


इस बिंदु पर मैं अपना मोचा परीक्षण सफलतापूर्वक चला सकता हूं। मुझे पता है कि यहाँ मेरे ज्ञान में अंतराल हैं: मैंने बहुत सारे उत्पादन जावास्क्रिप्ट कोड लिखे हैं, लेकिन मैं एक रिश्तेदार नोड नॉब हूं। जो कोई भी इसे उत्तर में जोड़ने के लिए अधिक देखता है, कृपया एक टिप्पणी छोड़ दें और मैं उत्तर को बेहतर करूंगा, या अपना खुद का बेहतर उत्तर छोड़ दूंगा।
pb2q

2

मुझे बाबेल के साथ करने का सबसे आसान तरीका मिला। 6.XX को nyc का उपयोग करना था और फिर एक helperफाइल में जोड़ना थाpckage.json

तो यहाँ वही है जो मैंने इस्तेमाल किया

package.json

{
  ....
  "scripts": {
    "test": "nyc mocha --reporter tap 'test/**/*.spec.js'"
  },
  "devDependencies": {
    "babel-cli": "^6.24.0",
    "babel-core": "^6.24.0",
    "babel-loader": "^6.4.0",
    "babel-preset-env": "^1.2.2",
    "babel-preset-es2015": "^6.24.0",
    "babel-preset-react": "^6.23.0",
    "babel-preset-react-hmre": "^1.1.1",
    "babel-preset-stage-2": "^6.22.0",
    "babel-register": "^6.24.0",
    "babel-runtime": "^6.23.0",
    "chai": "^3.5.0",
    "mocha": "^3.2.0",
    "nyc": "^10.1.2",
    "webpack": "^2.3.3",
    "webpack-config": "^7.0.0",
    "webpack-dashboard": "^0.3.0",
    "webpack-dev-server": "^2.4.2"
  },
  "nyc": {
    "all": true,
    "include": [
      "src/**/*.js"
    ],
    "cache": true,
    "require": [
      "./test/helper/registerBabel.js"
    ]
  }
}

babelrc

{
  "presets": [
    "es2015", //remove the {modules: false} it doesn't work with this
    "stage-2"
  ]
}

registerBabel.js

/* eslint-disable import/no-commonjs, import/unambiguous */
require('babel-register')();

अब आप अपने परीक्षणों में या जहाँ भी आपको आवश्यकता हो, es6 का उपयोग करने में सक्षम होंगे। मेरा सब विफल हो रहा है;)

फिर npm run testजो आग बुझाएगाnyc mocha --reporter tap 'test/**/*.spec.js'


2

यहाँ मेरे लिए क्या काम किया है। --compilersध्वज का उपयोग करने पर मुझे चेतावनी मिली ।

पदावनत करना: "- माइक्रोमैक्स" को मोचा के भविष्य के संस्करण में हटा दिया जाएगा; अधिक जानकारी के लिए https://git.io/vdcSr देखें

इसलिए मैंने इसे --requireध्वज के साथ बदल दिया

"test":  "mocha --require babel-core/register --recursive"

यहाँ मेरा है .babelrc:

{
  "presets": ["env"]
}

मेरे package.jsonदेव आश्रित

"devDependencies": {
  "babel-cli": "^6.26.0",
  "babel-preset-env": "^1.7.0",
  "mocha": "^5.2.0",
}

2

मैंने निम्नलिखित निर्देशों के साथ आज सुबह इस मुद्दे को हल किया

एनपीएम मॉड्यूल स्थापित करें

npm install --save-dev @babel/polyfill
npm install --save-dev @babel/register

package.json :

"scripts": {
    "test": "mocha --require @babel/register --require @babel/polyfill src/DesktopApplication/Tests",
  }

.babelrc

{
  "presets": ["@babel/env"]
}

1

मैंने आज सुबह इस मुद्दे को आधिकारिक 4 से निम्नलिखित निर्देशों के साथ हल किया है।

एनपीएम मॉड्यूल स्थापित करें

npm install --save-dev babel-polyfill
npm install --save-dev babel-preset-env
npm install --save-dev babel-register

या एक ही आदेश:

npm i -d babel-polyfill babel-preset-env babel-register

package.json :

"scripts": {
    "test": "mocha --require babel-polyfill --require babel-register"
  }

.babelrc

{
  "presets": ["env"]
}


0

mochaजब मैं importअपने कोड में उपयोग करता हूं तो मैं उसी त्रुटि को स्थापित और पूरा करता हूं। निम्नलिखित क्रियाएं करके, मुद्दा ठीक किया गया था।

npm install babel-core --save-dev
npm install babel-preset-es2015 --save-dev
npm install babel-preset-stage-0 --save-dev

और फिर एक .babelrcफ़ाइल जोड़ें :

{
    "presets": [
        "es2015"
    ]
}

और फिर mochaइस तरह से चलाएं :

mocha --compilers js:babel-core/register

-1

मुझे भी यही समस्या थी। जब परीक्षण चल रहा है मुझे एहसास हुआ कि मैं वास्तव में आश्रित मॉड्यूल को स्टब करना चाहता था। यह यूनिट परीक्षण के लिए अच्छा है और बाबेल को सबमॉड्यूल्स को बदलने से रोकता है। इसलिए मैंने इस्तेमाल किया proxyquire, अर्थात्:

const proxyquire = require('proxyquire').noCallThru()

const myTestedModule = proxyquire('../myTestedModule', {
    'dependentModule1': { //stubbed module1 },
    'dependentModule2': { //stubbed module2 }
})

यह टिप्पणी के रूप में बेहतर है।
गजस

-3

अधिक भविष्य के प्रमाण सेटिंग के लिए

npm install babel-preset-latest --save-dev

और .babelrc

{
  "presets": [ "latest" ]
}

विरोध के रूप में...

npm install babel-preset-es2015 --save-dev

तथा

{
 "presets": [ "es2015" ]
}

2
मुझे लगता है कि यह उत्तर व्यावहारिक रूप से इस प्रश्न से संबंधित नहीं है .. या यों कहें, इसे एक टिप्पणी के रूप में दूसरे उत्तर में जोड़ा जा सकता है
62mkv

@ 62mkv धन्यवाद! हौज बनने का रास्ता और इस जगह को साफ रखें।
फिल हेनरी मैकबॉब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.