2016-09-29 13 views
0

私はいくつかのモジュールに付属しているnode.jsスクリプトを持っています。私はそれを実行するのに苦労しています(Debian 7)。私は検索し、さまざまな "解決策"を試したが、どれもうまくいきませんでした。Node.jsはモジュール&etcを見つけることができません

これは私のコンソール出力です:

`[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) 

私は私の窓の上でこれを試してみました、それが働いていたが、私のdebian上、それだけでdoesntの仕事が何らかの理由

パーサ/ token_analyzerディレクトリの切断:

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

parser/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理解して何からノードmodulesディレクトリ上にあります。それは、node_modulesに沿っているか、さらに深くなければなりません。あなたのディレクトリ構造は次のようになります

|
| ----ボット/ node_modules /蒸気/リソース/ steam_language_parser /パースR/token_analyzer.js
| ---- sell.js

これはまったく動作しません。 しかし、以下は動作します

|
| ----ボット/ node_modules /蒸気/リソース/ steam_language_parser /パースR/token_analyzer.js
| ----ボット/ sell.js

FYI私は/にすべての\を変換し、なぜあなたはlinuxを使っているのかどうかをあなたは指摘していますか?

関連する問題