首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行铁节点时,module.js无法找到模块。

运行铁节点时,module.js无法找到模块。
EN

Stack Overflow用户
提问于 2016-05-12 08:37:32
回答 1查看 341关注 0票数 2

我正在尝试使用铁节点(v2.2.17)来调试我的mocha单元测试。当我从package.json运行此命令时,单元测试运行良好:

代码语言:javascript
复制
"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\"",

但是,当我运行这个命令时,测试会失败:

代码语言:javascript
复制
"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\"",

控制台中的错误是:

代码语言:javascript
复制
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

此模块位于C:\TFS\Dev-UI\WebApp\Src\Web\Web\src\framework\api\entityAddresses\entityAddressesActions.js中。

我的项目文件夹是C:\TFS\Dev-UI\WebApp\Src\Web\Web,我的process.env.NODE_PATH也是C:\TFS\Dev-UI\WebApp\Src\Web\Web。(它是未定义的,但我在.iron-node.js中将其设置为.iron-node.js-参见https://github.com/s-a/iron-node/issues/98#issuecomment-218658236)

我不知道为什么找不到模块。我是不是漏掉了什么配置?

编辑

因此,这个答案建议在应用程序启动后设置process.env.NODE_PATH无法工作,因为模块路径是缓存的:Determine project root from a running node.js application

我不知道如何在铁节点开始之前设置它,它总是没有定义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-12 11:00:51

问题可以通过.ron-node.js配置文件来解决:

代码语言:javascript
复制
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;

感谢提出这个建议的s-a:https://github.com/s-a/iron-node/issues/98#issuecomment-218712907

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37181535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档