2017-07-05 7 views
1

私は、MochaとExpectをテスト用に使用するnode.jsアプリケーションを持っています。反応のためにwebpackをインストールするまで、すべてのテストは素晴らしいです。私は、「NPMテスト」を実行すると、私は次のエラーを取得する:WebpackがNode.jsのMochaを壊すApp

Error: Cannot find module 'should' 
    at Function.Module._resolveFilename (module.js:469:15) 
    at Function.Module._load (module.js:417:25) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\watchpack\test\DirectoryWatcher.test.js:2:1) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\mocha\lib\mocha.js:230:27 
    at Array.forEach (native) 
    at Mocha.loadFiles (C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\mocha\lib\mocha.js:227:14) 
    at Mocha.run (C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\mocha\lib\mocha.js:495:10) 
    at Object.<anonymous> (C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\mocha\bin\_mocha:469:18) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.runMain (module.js:604:10) 
    at run (bootstrap_node.js:393:7) 
    at startup (bootstrap_node.js:150:9) 
    at bootstrap_node.js:508:3 
npm ERR! Test failed. See above for more details. 
以下

は私のpackage.jsonです:

{ 
    "name": "cool-map", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "start": "node server.js", 
    "test": "export NODE_ENV=test || SET \"NODE_ENV=test\" && mocha **/*.test.js", 
    "test-watch": "nodemon --exec \"npm test\"" 
    }, 
    "engines": { 
    "node": "6.2.2" 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "bcryptjs": "^2.3.0", 
    "body-parser": "^1.15.2", 
    "express": "^4.14.0", 
    "jsonwebtoken": "^7.1.9", 
    "lodash": "^4.15.0", 
    "mongodb": "^2.2.5", 
    "mongoose": "^4.5.9", 
    "validator": "^5.6.0", 
    "hbs": "^4.0.0", 
    "babel-preset-stage-0": "^6.24.1", 
    "express": "^4.15.2", 
    "react": "^0.14.7", 
    "react-dom": "^0.14.7" 
    }, 
    "devDependencies": { 
    "expect": "^1.20.2", 
    "mocha": "^3.0.2", 
    "nodemon": "^1.10.2", 
    "supertest": "^2.0.0", 
    "babel-core": "^6.5.1", 
    "babel-loader": "^6.2.2", 
    "babel-preset-es2015": "^6.5.0", 
    "babel-preset-react": "^6.5.0", 
    "webpack": "^1.12.13" 
    } 
} 

私はwebpack.configを投稿することが必要であるかどうかわからないんだけど、念のために:私はWebPACKのをアンインストールすると、コマンドのNPMテストを実行

module.exports = { 
    entry: './app/app.jsx', 
    output: { 
     path: __dirname, 
     filename: './public/bundle.js' 
    }, 
    resolve: { 
     root: __dirname, 
     alias: { 
      AdminUserTable: 'app/components/AdminUserTable.jsx' 
     }, 
     extensions: ['', '.js', '.jsx'] 
    }, 
    module: { 
     loaders: [ 
      { 
        loader: 'babel-loader', 
       query: { 
        presets: ['react', 'es2015'] 
       }, 
       test: /\.jsx?$/, 
       exclude: /(node_modules|bower_components)/ 
      } 
     ] 
    } 
}; 

は素晴らしい作品これは、モカを壊している理由は、私はよく分かりません。

答えて

2

以下のようにNPMとあなたのpackage.jsonです依存関係としてshouldがありません。

経由でインストールします。

npm install --save-dev should

また、私はあなたが私の意見では、わずかに異なるAPIを提供しchaiに見てお勧めします。

+0

成功!ありがとう。私はこれとリムラフをインストールし、それが今働いた。あなたはwebpackを追加することでそれらの2つを必要とするのはなぜですか? – brianalbin3

1

は、表現可能で読みやすいフレームワークにとらわれないアサーションライブラリです。この図書館の主な目的は、表現力豊かで助けになることです。テストコードをきれいに保ち、エラーメッセージが役立ちます。 デフォルトでは( 'should')が必要な場合は、Object.prototypeを列挙できない単一のゲッターで拡張し、そのオブジェクトがどのように動作するかを表現できるようにする必要があります。また、requireを指定して必要に応じて自身を返します。 get.jsをgetterなしで使用することもできます(Object.prototypeを拡張しようとすることさえありません)。単に 'should/as-function'が必要です。または、既に自動追加ゲッターを使用している場合は、.noConflict関数を呼び出すことができます。 (何か)の 結果はゲッターを.shouldし、ほとんどの状況で(何か)は、uはノードの依存関係をインストールし、同じ

優れていなければならないはず

npm install --save should 

should-reference

関連する問題