0.6.5 にアップデートしたときに、同じ苦境に陥りました。
私が現在行っているのは、次のようなパスを取得することです。
var meteor_root = Npm.require('fs').realpathSync( process.cwd() + '/../' );
これは開発モードで戻ります:
/my/application/.meteor/local/build/programs
およびバンドル モード:
/my/application/build/app/programs
ここから、次のようにアプリケーションの「ルート」パスに到達します。
var application_root = Npm.require('fs').realpathSync( meteor_root + '/../' );
// if running on dev mode
if( Npm.require('path').basename( Npm.require('fs').realpathSync( meteor_root + '/../../../' ) ) == '.meteor' ){
application_root = Npm.require('fs').realpathSync( meteor_root + '/../../../../' );
}
これが失敗する唯一のケースは、たまたまアプリケーションのフォルダに「.meteor」という名前を付けた場合ですが、これはエッジ ケースです。
それに関連して、必要なものにアクセスできます。
さらに、Meteor バンドラーが作成するアセット フォルダーに直接アクセスすることもできます。
var assets_folder = meteor_root + '/server/assets/' + Npm.require('path').basename( application_root );
最終的にはより優れたファイル/パス相互作用 API が追加されると予想されるため、これは一時的なものである可能性があります。
それが役立つことを願っています