node-webkit:调用require()throw" AssertionError:缺少路径"

时间:2014-07-19 23:44:25

标签: node.js webkit node-webkit assertions

我正在编写一个node-webkit应用程序(基于node-webkit-hipster-seed)并且我正在尝试导入其他节点模块。我发现即使我尝试导入默认节点模块(例如fshttp),我也会收到以下错误:

var http = require('http');
AssertionError: missing path

堆栈跟踪:

"AssertionError: missing path
at Module.require (module.js:359:3)
at require (module.js:376:17)
at window.require (eval at undefined, <anonymous>:1:112)
at _require (file:///Users/...project/_public/js/vendor.js:92:38)
at require (file:///Users/...project/_public/js/vendor.js:162:16)
at eval (eval at undefined, <anonymous>:2:6)
at Object.InjectedScript._evaluateOn (eval at undefined, <anonymous>:603:39)
at Object.InjectedScript._evaluateAndWrap (eval at undefined, <anonymous>:562:52)
at Object.InjectedScript.evaluate (eval at undefined, <anonymous>:481:21)"

我不确定发生了什么。是不是我不知道的错误require?这个require不是CommonJS要求吗?

2 个答案:

答案 0 :(得分:1)

事实证明,问题是我还加载了ace.js,它还分配了一个全局require函数。

要解决此问题,您可以添加以下代码段:(source

<script type="text/javascript">
    window.requireNode = window.require;
    window.require = undefined; 
</script>

在主html文件的head中。然后只使用requireNode代替require

答案 1 :(得分:0)

例外情况是:

AssertionError: missing path
     at Module.require (module.js:351:3)
     at require (internal/module.js:12:17)
     at Object.<anonymous> (D:\learning\index.js:1:77)
     at Module._compile (module.js:409:26)
     at Object.Module._extensions..js (module.js:416:10)
     at Module.load (module.js:343:32)
     at Function.Module._load (module.js:300:12)
     at Function._load (C:\Users\12885\AppData\Roaming\npm\node_modules\pm2\node_modules\pmx\lib\transaction.js:62:21)
learning-0 (err):     at C:\Users\12885\AppData\Roaming\npm\node_modules\pm2\lib\ProcessContainer.js:217:23
learning-0 (err):     at C:\Users\12885\AppData\Roaming\npm\node_modules\pm2\node_modules\async\lib\async.js:52:16

解决方案是:

var express = require(express); ---> var express = require('express');
相关问题