2016-05-12 7 views
1

Ich versuche, Eisen-Knoten (v2.2.17) zu verwenden, um meine Mokka Komponententests zu debuggen. Die Einheit-Tests laufen gut, wenn ich diesen Befehl aus meiner package.json laufen:module.js können keine Module finden beim Ausführen von Eisen-Knoten

"test": "cross-env NODE_ENV=test mocha test/.setup.js --reporter progress --compilers js:babel-core/register --require babel-polyfill --recursive \"./src/**/*.spec.js\" \"./src/**/*.integrationSpec.js\" \"./test/**/*.spec.js\"", 

Jedoch, wenn ich diesen Befehl ausführen die Tests fehlschlagen:

"debug:test": "cross-env NODE_ENV=test iron-node node_modules\\mocha\\bin\\_mocha test/.setup.js --reporter progress --compilers js:babel-core/register --require babel-polyfill --recursive \"./src/**/*.spec.js\" \"./src/**/*.integrationSpec.js\" \"./test/**/*.spec.js\"", 

Der Fehler in der Konsole ist:

Error: Cannot find module 'src/framework/api/entityAddresses/entityAddressesAc tions' 

    - module.js:16 require 
    internal/module.js:16:19 

    - entityAddressesActions.spec.js:5 Object.<anonymous> 
    entityAddressesActions.spec.js:5:1 

Dieses Modul befindet sich in C:\TFS\Dev-UI\WebApp\Src\Web\Web\src\framework\api\entityAddresses\entityAddressesActions.js

Mein Projektordner ist C:\TFS\Dev-UI\WebApp\Src\Web\Web und meine process.env.NODE_PATH ist auch C:\TFS\Dev-UI\WebApp\Src\Web\Web. (es war undefiniert aber ich setze es auf process.cwd() in meinem .iron-node.js - siehe https://github.com/s-a/iron-node/issues/98#issuecomment-218658236)

Ich kann nicht herausfinden, warum das Modul nicht gefunden wird. Fehle ich etwas Konfiguration?

bearbeiten

Diese SO Antwort schlägt process.env.NODE_PATH Einstellung, wenn die App nicht funktioniert hat damit begonnen, weil die Modulpfade zwischengespeichert werden: Determine project root from a running node.js application

ich ratlos bin, wie diese einzustellen, bevor Eisen-Knoten beginnt, ist es immer undefined

Antwort

1

Problem kann mit einer .iron-node.js Config-Datei aufgelöst werden:

process.env.NODE_PATH = process.cwd(); // fix problem where modules are not resolved - Jack Allan. 
var path = require("path"); 
var settings = { 
    "nodeModule" : { 
    "scriptInjection" : "module.paths.push(process.env.NODE_PATH);", // fix problem where modules are not resolved - Jack Allan. 
    }, 
    "v8": { 
    "flags" : [        // DEFAULT=[]; https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md 
    ] 
    }, 
    "app": { 
    "native+"    : false, // DEFAULT=FALSE; extends require to search native modules respecting the current v8 engine version. 
    "autoAddWorkSpace"  : false, // DEFAULT=TRUE; disables the autoAddWorkSpace behavior. 
    "openDevToolsDetached" : false, // DEFAULT=FALSE; opens the dev tools windows detached in an own window. 
    "hideMainWindow"  : false, // DEFAULT=FALSE; hides the main window to show dev tools only. 
    }, 
    "workSpaceDirectory"  : function(argv) { // determines the workspace directory for specific commandline applications. 
    var result = ""; 
    if (argv[2]){ 
     result = path.dirname(argv[2]); 
     var startupScriptName = path.basename(argv[2]).toLowerCase(); 

     switch(startupScriptName) { 
      case "_mocha": 
      result = process.cwd(); 
      break; 
      default: 
      result = path.resolve(result); 
      break; 
     } 
    } 

    return result; 
    } 
}; 

module.exports = settings; 

Dank s-a, die dies vorgeschlagen: https://github.com/s-a/iron-node/issues/98#issuecomment-218712907

Verwandte Themen