2017-02-12 16 views
2

私はカルマテストの実行を[email protected]^2.2.1[email protected]にしようとしています。ERROR [preprocess]: "webpack"を読み込めません! ([email protected]; [email protected])

ERROR [preprocess]: Can not load "webpack"! 
    Error 
    at webpack (/Users/plano/S/plano/projects/scheduler.frontend.ng2/node_modules/webpack/lib/webpack.js:19:9) 
    at new Plugin (/Users/plano/S/plano/projects/scheduler.frontend.ng2/node_modules/karma-webpack/lib/karma-webpack.js:65:18) 
    at invoke (/Users/plano/S/plano/projects/scheduler.frontend.ng2/node_modules/di/lib/injector.js:75:15) 
    ... 

私が見つけたすべてのソリューションは[email protected](例えばthis github issuethis stackoverflow quertion)のバグについては、次のとおりです。しかし、私が得るすべては、このエラーがあります。彼らは私のために役立つものではないので、1.4.1に

This postは、webpack configからentry: {}を削除するように指示します。私はwebpackの設定でentry: {}を持っていません。

this stackoverflow answerによると、2.2.0-rc.4以降のウェブパックの問題です。だから私は2.2.0-rc.3を試しました。何も変わっていません。

マイkarma.conf.js:

'use strict'; 

module.exports = config => { 
    config.set({ 
     autoWatch: true, 
     browsers: ['Chrome', 'PhantomJS'], 
     files: [ 
      '../node_modules/es6-shim/es6-shim.min.js', 
      'karma.entry.js' 
     ], 
     frameworks: ['jasmine'], 
     logLevel: config.LOG_INFO, 
     phantomJsLauncher: { 
      exitOnResourceError: true 
     }, 
     port: 9876, 
     preprocessors: { 
      'karma.entry.js': ['webpack', 'sourcemap'] 
     }, 
     reporters: ['dots'], 
     singleRun: true, 
     webpack: require('../webpack/webpack.test.js'), 
     webpackServer: { 
      noInfo: true 
     } 
    }); 
}; 

マイwebpack.test.js:

'use strict'; 

const path = require('path'); 
const webpack = require('webpack'); 

module.exports = { 
    devtool: 'inline-source-map', 
    module: { 
     preLoaders: [ 
      { exclude: /node_modules/, loader: 'tslint', test: /\.ts$/ } 
     ], 
     loaders: [ 
      { loader: 'raw', test: /\.(css|html)$/ }, 
      { exclude: /node_modules/, loader: 'ts', test: /\.ts$/ }, 
      { 
       test: /\.scss$/, 
       exclude: /node_modules/, 
       loaders: ['raw-loader', 'sass-loader'] // sass-loader not scss-loader 
      } 
     ] 
    }, 
    resolve: { 
     extensions: ['', '.js', '.ts'], 
     modulesDirectories: ['node_modules'], 
     root: path.resolve('.', 'src') 
    }, 
    tslint: { 
     emitErrors: true 
    } 
}; 
+0

をどのようにこのプロジェクトを作成したのですか? – Aravind

+0

@Aravindこれは[このチュートリアル](https://semaphoreci.com/community/tutorials/setting-up-angular-2-with-webpack)/ [this repo](https://github.com/)に基づいています。 gonzofish/semaphore-ng2-webpack)..最初は**[email protected]^1.13.1**上で動作していました。実行中の場所をテストしますが、webpack 2の更新以降はもう実行しません。 [package.json](https://github.com/gonzofish/semaphore-ng2-webpack/blob/master/package.json) – DerZyklop

+0

@Aravindあなたのコメントのおかげで、私はプレーンチュートリアルレポに基づいてアップグレードしようとしています。私はここであなたを更新しておきます。 – DerZyklop

答えて

0

解決しました。

私は私のwebpack.test.jsで、このようなオプションを持っていた:

tslint: { 
    emitErrors: true 
} 

WebPACKの2は、非常に厳格な構成となっています。今、それは次のようになります。ここ

plugins: [ 
    ... 
    new LoaderOptionsPlugin({ 
     options: { 
      emitErrors: true 
     } 
    }), 
] 

さらに詳しい情報:https://github.com/gonzofish/semaphore-ng2-webpack/pull/4#issuecomment-279374763

関連する問題