【问题标题】:Node.js cannot find module & etcNode.js 找不到模块等
【发布时间】:2016-09-29 07:38:36
【问题描述】:

所以我有一个带有一些模块的 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 服务器上不起作用

解析器/token_analyzer 目录:

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

请求解析器/令牌分析器的文件:

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

【问题讨论】:

  • 您能在需要'./parser/token_analyzer' 的地方显示您的文件吗?这个文件在哪里?
  • 当然,您在parser 目录中是否有一个名为token_analyzer.js 的文件与sell.js 对等?
  • 解析器目录是:
  • bot\node_modules\steam\resources\steam_language_parser\parser
  • bot 是 sell.js 的起始目录

标签: javascript node.js debian


【解决方案1】:

据我了解

您的 sell.js 位于节点模块目录之上。它应该与 node_modules 甚至更深。你说你的目录结构是这样的

|
|---- bot/node_modules/steam/resources/steam_language_parser/parse‌​r/token_analyzer.js
|---- 出售.js

这根本行不通。 但以下将起作用

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

仅供参考,我将所有 \ 转换为 /,如果您使用的是 linux,为什么还要在 \'s 中表示?

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 2013-08-10
    • 2019-05-12
    • 2012-01-02
    • 2017-02-18
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多