nightmare icon indicating copy to clipboard operation
nightmare copied to clipboard

Cannot find module "\package.json" when using mocha and webpack or mocha-webpack

Open 4lph4-Ph4un opened this issue 7 years ago • 3 comments

Here's a trace when attempting to run the config:

 MOCHA  Testing...

 RUNTIME EXCEPTION  Exception occurred while loading your tests

Error: Cannot find module 'D:\Projects\JavaScript\JS\MasterClass\node_modules\nightmare\package.json'
    at webpackEmptyContext (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:35022:10)
    at Object.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:29139:45)
    at Object.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:29454:30)
    at __webpack_require__ (D:\Projects\JavaScript\JS\MasterClass\src\convert\xml.js:16:7)
    at Module.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:28795:67)
    at __webpack_require__ (D:\Projects\JavaScript\JS\MasterClass\src\convert\xml.js:16:7)
    at Suite.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:14499:3)
    at Object.create (D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha\lib\interfaces\common.js:112:19)
    at context.describe.context.context (D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha\lib\interfaces\bdd.js:40:27)
    at Object.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:14498:1)
    at __webpack_require__ (D:\Projects\JavaScript\JS\MasterClass\src\convert\xml.js:16:7)
    at Suite.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:152:3)
    at Object.create (D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha\lib\interfaces\common.js:112:19)
    at context.describe.context.context (D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha\lib\interfaces\bdd.js:40:27)
    at Object.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:151:1)
    at __webpack_require__ (D:\Projects\JavaScript\JS\MasterClass\src\convert\xml.js:16:7)
    at run (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:93:20)
    at Array.forEach (native)
    at Object.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:100:24)
    at __webpack_require__ (D:\Projects\JavaScript\JS\MasterClass\src\convert\xml.js:16:7)
    at ids (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:84:18)
    at Object.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\public\scripts\bundle.js:87:10)
    at Module._compile (module.js:569:30)
    at Object._module2.default._extensions.(anonymous function) [as .js] (D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha-webpack\lib\util\registerRequireHook.js:148:12)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha\lib\mocha.js:250:27
    at Array.forEach (native)
    at Mocha.loadFiles (D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha\lib\mocha.js:247:14)
    at Mocha.run (D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha\lib\mocha.js:576:10)
    at D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha-webpack\lib\runner\TestRunner.js:191:27
    at D:\Projects\JavaScript\JS\MasterClass\node_modules\mocha-webpack\lib\webpack\compiler\registerReadyCallback.js:26:7
    at AsyncSeriesHook.eval [as callAsync] (eval at create (D:\Projects\JavaScript\JS\MasterClass\node_modules\tapable\lib\HookCodeFactory.js:24:12), <anonymous>:27:1)
    at AsyncSeriesHook.lazyCompileHook [as _callAsync] (D:\Projects\JavaScript\JS\MasterClass\node_modules\tapable\lib\Hook.js:35:21)
    at emitRecords.err (D:\Projects\JavaScript\JS\MasterClass\node_modules\webpack\lib\Compiler.js:257:22)
    at Compiler.emitRecords (D:\Projects\JavaScript\JS\MasterClass\node_modules\webpack\lib\Compiler.js:372:39)
    at emitAssets.err (D:\Projects\JavaScript\JS\MasterClass\node_modules\webpack\lib\Compiler.js:251:10)
    at hooks.afterEmit.callAsync.err (D:\Projects\JavaScript\JS\MasterClass\node_modules\webpack\lib\Compiler.js:358:14)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (D:\Projects\JavaScript\JS\MasterClass\node_modules\tapable\lib\HookCodeFactory.js:24:12), <anonymous>:9:1)
    at AsyncSeriesHook.lazyCompileHook [as _callAsync] (D:\Projects\JavaScript\JS\MasterClass\node_modules\tapable\lib\Hook.js:35:21)
    at asyncLib.forEach.err (D:\Projects\JavaScript\JS\MasterClass\node_modules\webpack\lib\Compiler.js:355:27)
    at done (D:\Projects\JavaScript\JS\MasterClass\node_modules\neo-async\async.js:2854:11)
    at D:\Projects\JavaScript\JS\MasterClass\node_modules\neo-async\async.js:2805:7
    at MemoryFileSystem.writeFile (D:\Projects\JavaScript\JS\MasterClass\node_modules\memory-fs\lib\MemoryFileSystem.js:328:9)
    at writeOut (D:\Projects\JavaScript\JS\MasterClass\node_modules\webpack\lib\Compiler.js:339:29)
    at asyncLib.forEach (D:\Projects\JavaScript\JS\MasterClass\node_modules\webpack\lib\Compiler.js:349:7)
    at baseEach (D:\Projects\JavaScript\JS\MasterClass\node_modules\neo-async\async.js:2416:9)
    at Object.each (D:\Projects\JavaScript\JS\MasterClass\node_modules\neo-async\async.js:2843:9)
    at emitFiles (D:\Projects\JavaScript\JS\MasterClass\node_modules\webpack\lib\Compiler.js:312:13)
    at Immediate.<anonymous> (D:\Projects\JavaScript\JS\MasterClass\node_modules\memory-fs\lib\MemoryFileSystem.js:288:4)
    at runCallback (timers.js:800:20)
    at tryOnImmediate (timers.js:762:5)
    at processImmediate [as _immediateCallback] (timers.js:733:5)

My devDependencies that correspond with the used config:

"devDependencies": {
    "@types/html-webpack-plugin": "^3.2.0",
    "@types/mocha": "^5.2.5",
    "@types/node": "^10.9.4",
    "@types/webpack-env": "^1.13.6",
    "awesome-typescript-loader": "^5.2.1",
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-stage-2": "^6.24.1",
    "chai": "^4.1.2",
    "chai-as-promised": "^7.1.1",
    "cross-env": "^5.2.0",
    "electron": "^2.0.8",
    "eslint": "^5.5.0",
    "loglevel": "^1.6.0",
    "mocha": "^5.2.0",
    "mocha-webpack": "^2.0.0-beta.0",
    "nightmare": "^3.0.1",
    "sinon": "^5.1.1",
    "typescript": "^3.0.3",
    "webpack": "^4.17.2",
    "webpack-bundle-analyzer": "^2.13.1",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.8",
    "webpack-merge": "^4.1.4"
  },

My script used with mocha-webpack and webpack file for testing:

// This invokes the test. The test_helper.js file just contains initializations for chai and chai-as-promised
 "test": "mocha-webpack --webpack-config webpack.config.test.js --require ./test/test_helper.js ./test/index.spec.js"

// webpack.config.test.js:
// NOTE: The base config gets pretty much completely overwritten here,
// so not much to show in terms of that:

let config   = require("./webpack.config"),
    path     = require("path"),
    APP_DIR  = path.resolve(__dirname, "src"),
    TEST_DIR = path.resolve(__dirname, "test");

config.target = "electron-main";

config.entry = [
  `${TEST_DIR}/index.spec.js` 
];

config.node = {
  __dirname: true
};

config.module = {
  rules: [
    {
      test:    /\.js$/,
      loader:  "babel-loader",
      include: TEST_DIR
    }, {
      test:    /\.ts$/,
      loader: "awesome-typescript-loader",
      include: TEST_DIR
    }
  ]
};

module.exports = config;

I checked for said missing module, but the given file is indeed located in the said location. Your library seems really nice and interesting! 👍 Hope I can get this to work!

4lph4-Ph4un avatar Sep 07 '18 21:09 4lph4-Ph4un

Yohooo? 👋

4lph4-Ph4un avatar Nov 08 '18 22:11 4lph4-Ph4un

The same issue happens also when using plain mocha and webpack together. Checked other issues with similar descriptions, but no avail.

4lph4-Ph4un avatar Dec 21 '18 16:12 4lph4-Ph4un

Same issue..