节点网络工具包加载模块失败
node-webkit loading module fails
我从node-webkit开始,我无法加载我在项目中制作的模块(JS文件)。这是树视图:根
|-index.html
|-js/
|---app.js
|---resources/
|-----angular..jquery..
|---crawler/
|-----leboncoin/
|-------lbcCrawler.js
我想在"app.js"中加载模块"mycrawler",但出现以下错误:
Error: Cannot find module 'js/crawler/leboncoin/lbcCrawler.js'
at Function.Module._resolveFilename (module.js:334:15)
at Function.Module._load (module.js:273:25)
at Module.require (module.js:360:17)
at require (module.js:376:17)
at window.require (eval at undefined, <anonymous>:1:112)
at eval (file:///C:/Users/acouty/git/webkit%20fooling/js/ui/app.js:3:10)
我的文件 :索引.html:
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="css/style.css">
<script src="js/resources/angular/angular.min.js"></script>
<script src="js/resources/jquery-ui-1.10.3/js/jquery-1.9.1.js"></script>
<script src="js/resources/jquery-ui-1.10.3/js/jquery-ui-1.10.3.custom.min.js"></script>
<script src="js/ui/app.js"></script>
</head>
<body>
</body>
</html>
应用.js
var app = angular.module("app", []);
var cc = require("crawler/leboncoin/lbcCrawler.js");
lbc爬虫.js
var simpleCrawler = require("simplecrawler");
var BASE_URL = "http://www.leboncoin.fr/annonces/offres/:region/occasions/?f=a&th=1&q=:item";
var DEFAULT_REGION = "ile_de_france";
var crawl = function(item, region, results)
{
if (_.isUndefined(region) || _.isNull(region))
{
region = DEFAULT_REGION;
}
console.log("Looking for %s in %s", item, region);
var queryURL = BASE_URL.replace(":region", region).replace(":item", item);
var lbcCrawler = simpleCrawler.crawl(queryURL);
lbcCrawler.interval(500);
lbcCrawler.on("fetchComplete", function(queueItem, responseBuffer, response) {
results.push(queueItem);
});
lbcCrawler.start();
}
编辑
我尝试了其他东西:我想要的是use my modules like dependencies
.ui 部分用于 angularJS,其他文件夹用于仅节点部分。我试图在我的想法中做一些更逻辑的事情:创建一个索引.js并将.json文件打包到lebecoincrawler目录中。现在,我想要一个 ui/文件夹文件需要这个。但我不能...
I tried :
var cc = require("../crawler/leboncoin/lbcCrawler.js");
var cc = require("./../crawler/leboncoin/lbcCrawler.js");
var cc = require("./js/crawler/leboncoin/lbcCrawler.js");
我无法让它工作,我无法相信这是不可能的,否则我无法想象我的 projet 文件夹会是什么样子......平:(。
谢谢!
尝试通过将./
添加到路径的开头来更改require
以显式从当前目录开始:
var cc = require("./crawler/leboncoin/lbcCrawler.js");
否则,节点将在node_modules目录中查找,或类似目录,cf:http://www.bennadel.com/blog/2169-Where-Does-Node-js-And-Require-Look-For-Modules-.htm
编辑:
出于某种原因,这在node-webkit中不起作用,但这可能会解决问题:
path = require('path');
var cc = require(path.join(process.cwd(),"js/crawler/leboncoin/lbcCrawler.js"));
编辑2:
我想我现在已经想通了。 __dirname
和 __filename
未在节点 REPL 中定义,也不在 node-webkit 脚本标记中定义,即使您的脚本标记用于包含您的 .js 文件,如
<script src="js/app.js"></script>
因此,如果您调用 require lbcCrawler.js
from app.js
则需要它作为
var cc = require("./js/crawler/leboncoin/lbcCrawler.js");
因为路径是你启动 node-webkit 的地方,例如 index.html 所在的位置。
但是,如果您这样做
<script>require('js/app.js')</script>
然后定义__dirname
和__filename
,require
将从应用程序.js文件所在的位置进行搜索,即您将执行以下操作:
var cc = require(path.join("./crawler/leboncoin/lbcCrawler.js"));
由于这种差异,您可能最好根据process.cwd
的值(如上面的第一次编辑)在这两种情况下都应该相同,无论 app.js 是通过 require
还是 script
包含在内。
- 导入模块失败's css文件
- AngularJS加载模块失败
- Angular--实例化模块失败
- 实例化模块失败错误:[$injector:unpr]
- 实例化app模块失败.处理步骤为什么
- 未捕获错误:[$injector:modulerr]实例化模块失败,原因是:
- Angularjs、Typescript、Uglify实例化myApp模块失败未知提供商:a
- 实例化myApp模块失败
- Angular js错误:[$injector:modulerr]实例化ngroute模块失败,原因是:
- 加载模块失败.处理步骤
- 意味着js应用在被推送后实例化AngularJS模块失败
- 在AngularJS中实例化模块失败
- 错误:[$injector:modulerr]实例化routerApp ui-router模块失败
- Angularjs: [$injector:modulerr]实例化ui-router模块失败
- AngularJS和cordova: web应用工作,但不能cordova:实例化模块失败
- Angular: 'modulerr', "实例化模块失败
- 使用相对路径加载模块失败
- 实例化ngAnimate模块失败,原因是:
- angular js $injector:modulerr用mangle实例化模块失败
- 用angular js几乎可以分页任何东西,实例化模块失败错误