2017-04-03 11 views
1

プロジェクトのコア機能を持つcoreという名前のモジュールを作成します。 nodejでコアプロジェクトを使用したサービスプロジェクトも作成しました。このコアモジュールは、service-appのnode_modules依存関係(package.json)として組み込まれます。nodejsで相対パスが解決されない

私のサービスアプリはコアアプリケーションを呼び出し、コアアプリは相対パスを使用しています。


//core-app -> logger.js 

const loggerConfig = require('../../configs/logger-config.json'); 

は、サービスアプリは、その後起動すると、それはよりcore-app -> logger.js

const logger = require('core'); 

を必要とし、それプロンプトのエラー

Error: Cannot find module '../../configs/logger-config.json 

ここで../../configs/logger-config.jsonが正しく、他のシステムで正しく動作することがあります。

は今、私はそれが実行されている

//core-app -> logger.js 
const path = require('path'); 
const loggerConfig = require(path.join(__dirname,'../../configs/logger-config.json')); 

、への相対パスを交換してください。

エラーを解決しましたが、コードの標準についてはわかりません。参考までに、私は他のnode_modulesライブラリを調べて、それらが同じように相対的にも使われているのを発見しましたが、私の場合はエラーを表示します。

答えて

1

__dirnameは、スレッドがnodejsで実行する現在のディレクトリを示します。したがって、相対パスの代わりに__dirnameを使用する方が適しています。

関連する問題