我正在编写一个node-webkit应用程序(基于node-webkit-hipster-seed)并且我正在尝试导入其他节点模块。我发现即使我尝试导入默认节点模块(例如fs
和http
),我也会收到以下错误:
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要求吗?
答案 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');