2015-11-25 14 views
6

React/Webpackプロジェクトでの作業私はeslintライブラリで問題が発生しました。Eslint - 呼び出しスタックの最大サイズを超えました

eslintパッケージはnpmを使用してダウンロードされ、webpack preLoaderを使用してプロジェクトの検証に使用されます。

 preLoaders: [{ 
      test: /\.jsx?$/, 
      loaders: [ 'eslint' ], 
      include: path.resolve(__dirname, 'app') 
     }] 

最近まで私は同じプロジェクトを別のフォルダに複製しようとしていました。 依存関係 "npm install"をインストールしてプロジェクト "npm start"を開始した後、次のエラーが発生しました。

ERROR in ./main.view.jsx 
Module build failed: RangeError: Maximum call stack size exceeded 
    at keys (native) 
    at Referencer.Visitor.visitChildren (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:78:24) 
    at Referencer.Visitor.visit (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:112:14) 
    at Referencer.Visitor.visitChildren (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:93:26) 
    at Referencer.Visitor.visit (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:112:14) 
    at Referencer.Visitor.visitChildren (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:93:26) 
    at Referencer.Visitor.visit (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:112:14) 
    at Referencer.Visitor.visitChildren (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:88:38) 
    at Referencer.Visitor.visit (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:112:14) 
    at Referencer.Visitor.visitChildren (project/node_modules/eslint/node_modules/escope/node_modules/esrecurse/esrecurse.js:93:26) 
@ ./app.jsx 17:26-57 

奇妙な部分は、古いプロジェクトのインストールがまだ機能していることです。

問題はnode_modulesフォルダのどこかにある必要があります。これは、モジュールを古いインストールから新しいものにコピーすると、プロジェクトが突然動作するためです。 両方のプロジェクトで "npm list --depth = 0"を実行しましたが、どちらも同じパッケージとバージョンがあります。なぜ1人は働いていて、もう1人はいないのですか?

私はpreLoaderを削除すると再び動作するので、問題はeslintパッケージにあると思います。

私はそれについて本当に混乱しています。誰かが以前にその問題を抱えていた?

私main.view.jsxはその

import React from 'react'; 
export default class MainView extends React.Component { 
    render() { 
     return (
      <div /> 
     ); 
    } 
} 

おかげのように見えます!

+0

_/main.view.jsx_はどうですか?それを見せてもらえますか? –

+0

@nAz main.view.jsxで質問を更新しました。あなたが見るように、ただ空の反応成分です。私は可能な限り環境を隔離しようとしました。 – ius

答えて

10

私は自分でこの問題を解決できました。

すべてを隔離すると、問題はbabelの依存関係であることが分かりました。

何らかの理由で、私がbabel-core、babel-loader、babel-eslintのバージョンを組み合わせても、正しく動作しない場合があります。 package.jsonで私のプロジェクトに必要なバベルのバージョンを変更しましたが、今はすべて正常に動作します。

- "babel-core": "5.6.x", 
- "babel-loader": "5.3.x", 
- "babel-eslint": "3.1.x", 
+ "babel-core": "5.8.x", 
+ "babel-loader": "5.4.x", 
+ "babel-eslint": "4.1.x", 

ここに私のeslintの依存関係

"eslint": "1.10.x", 
"eslint-loader": "1.1.x", 
"eslint-plugin-react": "3.10.x" 

は、私はそれと失われた時間は他の誰かを助けることを願っています!

+1

これは他の人を助けてくれました! :D – loopmode

+0

ええと、なぜこれが選ばれた答えなのか分かりません。このソリューションは間もなく実現不可能なソリューションになります。それはすべてです:) –

+0

まだ利用可能です。私のために働いた。 –

1

スレッドhttps://github.com/eslint/eslint/issues/4485を見てみると、解決策は非常に単純にbabel-eslintを4.1.6に更新することです。たとえば、「babel-eslint」:「^ 4.1.6」です。 Now works :)

関連する問題