2016-05-23 24 views
1

私は、スクリプトカルマのWebPACKエラー:そのようなファイルやディレクトリはありません/ _karma_webpack_/

// src/test-index.js 
const context = require.context('./src', true, /-test\.js$/) 
context.keys().forEach(context) 

を使用していると私はここでエラーに

> NODE_ENV=test karma start --single-run --no-auto-watch 
... 
ERROR [karma]: { Error: no such file or directory 
    at MemoryFileSystem.readFileSync (PROJECT_ROOT/node_modules/memory-fs/lib/MemoryFileSystem.js:107:10) 
    at MemoryFileSystem.readFile (PROJECT_ROOT/node_modules/memory-fs/lib/MemoryFileSystem.js:297:21) 
    at doRead (PROJECT_ROOT/node_modules/karma-webpack/index.js:156:26) 
    at Plugin.readFile (PROJECT_ROOT/node_modules/karma-webpack/index.js:160:3) 
    at _combinedTickCallback (internal/process/next_tick.js:67:7) 
    at process._tickCallback (internal/process/next_tick.js:98:9) 
    code: 'ENOENT', 
    errno: 34, 
    message: 'no such file or directory', 
    path: '/_karma_webpack_/test-index.js' } 
Error: no such file or directory 
    at MemoryFileSystem.readFileSync (PROJECT_ROOT/node_modules/memory-fs/lib/MemoryFileSystem.js:107:10) 
    at MemoryFileSystem.readFile (PROJECT_ROOT/node_modules/memory-fs/lib/MemoryFileSystem.js:297:21) 
    at doRead (PROJECT_ROOT/node_modules/karma-webpack/index.js:156:26) 
    at Plugin.readFile (PROJECT_ROOT/node_modules/karma-webpack/index.js:160:3) 
    at _combinedTickCallback (internal/process/next_tick.js:67:7) 
    at process._tickCallback (internal/process/next_tick.js:98:9) 

を実行し続ける私のkarma.conf.jswebpack.config.jsgistへのリンクです。これらのファイル(上記のtest-index.jsを含む)は、現在のプロセスに関連する唯一のファイルであるため、他のファイルを残しました。

ノードv6.2.0、npm v3.8.9(nvm経由でインストール)。私は最新のバージョンを使用しているので、すべての依存関係はここ数時間でインストールされました。

何が間違っているのか、他に何ができるのかに関するアイデアはありますか?

答えて

1

問題は、カルマwebpack設定キーの元の設定を再利用しようとしていたことでした。私はカルマの設定を変更することで問題を解決してきました

:ここで重要なのは何

webpack: { 
    module: { 
    loaders: [ 
     { 
     test: /\.js$/, 
     exclude: /node_modules/, 
     loader: 'babel' 
     } 
    ] 
    }, 
    externals: { 
    cheerio: 'window', 
    'react/addons': true, 
    'react/lib/ExecutionEnvironment': true, 
    'react/lib/ReactContext': true 
    }, 
    node: { 
    fs: 'empty' 
    } 
}, 

は(モジュール「FS」エラーを見つけることができません防ぐために)moduleオブジェクトとnodeオブジェクトです。 externalsの部分はenzymeに固有であり、Enzyme + Karma + Webpack guideからコピーされました。酵素がどのように働いているかにも関わらず、酵素は内部的に両方のファイルを必要とするため、webpackは自動的に'.js''.json'を追加するので、明示的なresolve宣言はありません。代わりに、jsonローダーを明示的に宣言することもできます。