2016-09-29 87 views
0

所以我有一个node.js脚本附带一些模块,我努力运行它(Debian 7)。我已经搜遍并尝试了不同的“解决方案”,但他们都没有工作,帮助会很好。Node.js无法找到模块等

这是我的控制台输出:

`[email protected]:/home/bot# node sell.js 
module.js:457 
throw err; 
^ 

Error: Cannot find module './parser/token_analyzer' 
at Function.Module._resolveFilename (module.js:455:15) 
at Function.Module._load (module.js:403:25) 
at Module.require (module.js:483:17) 
at require (internal/module.js:20:19) 
at Object. <anonymous>  (/home/bot/node_modules/steam/resources/steam_language_parser/index.js:2:22) 
at Module._compile (module.js:556:32) 
at Object.Module._extensions..js (module.js:565:10) 
at Module.load (module.js:473:32) 
at tryModuleLoad (module.js:432:12) 
at Function.Module._load (module.js:424:3) 

我想这在我的Windows和它的工作,但它在我的debian只是不工作断绝出于某种原因

分析器/ token_analyzer目录:

bot\node_modules\steam\resources\steam_language_parser\parser\token_analyzer.js 

请求解析器/ token_analyzer的文件:

bot\node_modules\steam\resources\steam_language_parser\index.js 

CODE:

var fs = require('fs'); 
var token_analyzer = require('./parser/token_analyzer'); 

var codeGen = require('./generator/node_gen'); 
var languagePath = require('path').join(__dirname, '../steam_language'); 

var cwd = process.cwd(); 
process.chdir(languagePath); 

var tokenList = require('./parser/language_parser').tokenizeString(fs.readFileSync('steammsg.steamd', { encoding: 'ascii' })); 

var root = token_analyzer.analyze(tokenList); 

process.chdir(cwd); 

var rootEnumNode = new token_analyzer.Node(); 
var rootMessageNode = new token_analyzer.Node(); 

rootEnumNode.childNodes = root.childNodes.filter(function(n) { return n instanceof token_analyzer.EnumNode; }); 
rootMessageNode.childNodes = root.childNodes.filter(function(n) { return n instanceof token_analyzer.ClassNode; }); 

require('./code_generator').emitCode(rootEnumNode, codeGen); 
require('./code_generator').emitCode(rootMessageNode, codeGen); 
+1

你可以显示你的文件,你需要''./ parser/token_analyzer''吗?和这个文件存在的地方? – abdulbarik

+3

当然,您是否在'sell.js'的'parser'目录中有一个名为'token_analyzer.js'的文件? –

+0

解析器目录是: – Strykes

回答

0

据我了解

你sell.js高于节点模块目录。它应该与node_modules一起或更深。你说你的目录结构像

|
| ---- BOT/node_modules /蒸汽/资源/ steam_language_parser /解析R/token_analyzer.js
| ---- sell.js

这不会在所有的工作。 但是,下面将工作

|
| ---- BOT/node_modules /蒸汽/资源/ steam_language_parser /解析R/token_analyzer.js
| ---- BOT/sell.js

FYI我转换所有\到/,为什么如果你使用的是linux,你甚至可以表达出来吗?