2016-05-22 11 views
0

私は酵素/モカのサンプルプロジェクトをhttps://github.com/lelandrichardson/enzyme-example-mochaで実行しようとしています。私はGithubからプロジェクトをクローン化し、npm installを実行しました。私はプロジェクトにその他の変更を加えることなくmochaを実行したときに、これは私が受け取った出力です:酵素とモカのテスト - "予期しないトークンのインポート"

/Projects/enzyme-example-mocha/test/Foo-test.js:1 
(function (exports, require, module, __filename, __dirname) { import React from 'react'; 
                   ^^^^^^ 
SyntaxError: Unexpected token import 
    at exports.runInThisContext (vm.js:53:16) 
    at Module._compile (module.js:511:25) 
    at Object.Module._extensions..js (module.js:550:10) 
    at Module.load (module.js:456:32) 
    at tryModuleLoad (module.js:415:12) 
    at Function.Module._load (module.js:407:3) 
    at Module.require (module.js:466:17) 
    at require (internal/module.js:20:19) 

node --versionv6.1.0あると私mocha --version2.4.5です。

ノード/モカが実行できるようにこのプロジェクトをどのように変えるのですか?ありがとう。

答えて

1

をあなたはnpm run testを試してみましたか? testスクリプトはpackage.json"scripts"セクション)にあり、実行して初めて動作しました。ただmochanpm run test

違いは、前者は、あなたがtranspileのステップが欠落について言っていたものを、本質的であるbabel-registerを必要とし、それを実行ファイルtest/.setup.jsを、備えています。

-1

明らかにノードは、importclass ES6機能をサポートしていません。次のようにsrc/Foo.jsを書き換えることができます。

const React = require('react'); 

const propTypes = {}; 

const defaultProps = {}; 

var Foo = React.createClass({ 
    render: function() { 
    return (
     <div className="foo" /> 
    ); 
    } 
}); 

Foo.propTypes = propTypes; 
Foo.defaultProps = defaultProps; 

module.exports.Foo = Foo; 

あなたのテストは正常に動作します。

+0

あなたの回答に感謝し、それらのES6機能を避けるためにAirbnbコードを書き直すことができましたが、このテストをそのまま実行する方法があると私は想定しています - 例えば、これらの 'import'ステートメントを' require'ステートメントに変換するために欠落しています。私は作業中の大規模プロジェクトで同じ問題を抱えているので、公開されたサンプルがうまくいくならば、私が学んだことを受け取り、それを大きなプロジェクトに移すことができたと思いました。 – jay

0

.babelrcにプリセット2の設定を追加できます。

$ npm install --save-dev babel-preset-stage-2

あなた.babelrcファイルに次の行を追加します。

{ 
    "presets": ["stage-2","react","es2015"] 
} 
+0

これは必要ではありません。プロジェクトにはすでにairbnbプリセットを持つ '.babelrc'ファイルが含まれています。これには最小es2015サポートと同様に反応が必要です。 –

+0

ステージ2のプリセット – jruts

+0

が含まれていない@TylerCollierを理解しています。しかし、なぜ 'stage-2'を追加するのですか?それは不要です。 'stage-2 'なしで' npm run test'を実行することができます。 –

関連する問題