Node.js は同じディレクトリに .js ファイルを必要としません 質問する

Node.js は同じディレクトリに .js ファイルを必要としません 質問する

私はNode-WebKitプロジェクトを持っていますmain.js。一番上には

var updater = require("./updater.js");

updater.jsと同じディレクトリに という名前のファイルがありますmain.js。アプリを実行すると、エラーが発生します。

Uncaught Error: Cannot find module './updater.js' 

updater.jsそこには1行あります:

module.exports = "Hello!";

なぜファイルを require できないのかわかりません。別のプロジェクトで同じことが行われていたのを見たことがあります。同じ からモジュールを正常にrequire正規化できます。npmmain.js

ベストアンサー1

これは、node-webkit を使用してアプリ (main.js) を実行すると、ルート (作業) ディレクトリに index.html が存在するため、'./' はモジュールを要求しているファイルが存在するディレクトリではなく、そのディレクトリを参照するためです。

この問題は、次のように簡単に解決できます。'path' ノード モジュールの解決メソッドそして、その出力を作業ファイルのrequireメソッドに渡します。

以下の手順を実行してください。

var path = require('path');
var updater = require( path.resolve( __dirname, "./updater.js" ) );

編集: グローバルノードオブジェクト '__dirname' (およびその他) に関する情報が見つかりますここ

おすすめ記事