繁体   English   中英

Node.js找不到模块等

[英]Node.js cannot find module & etc

所以我有一些模块附带的node.js脚本,我正在努力运行它(Debian 7)。 我已经搜索并尝试了不同的“解决方案”,但是它们都不起作用,帮助会很好。

这是我的控制台输出:

`root@185:/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服务器上不起作用

Parser / 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

码:

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);

据我了解

您的sell.js位于节点模块目录上方。 它应该与node_modules一起使用或更深。 你说你的目录结构像

|
| ---- bot / node_modules / steam / resources / steam_language_parser / parse‌r / token_analyzer.js
| ---- sell.js

这根本不起作用。 但是下面的工作

|
| ---- bot / node_modules / steam / resources / steam_language_parser / parse‌r / token_analyzer.js
| ---- bot / sell.js

仅供参考,我将所有\\都转换为/,如果您使用的是Linux,为什么还要用\\表示呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM