2016-04-11 3 views
0

私はモジュールを含んでいます。私のモジュールはapp1に含まれていて、app2には別のモジュールフォルダがあります。 仮想モジュールのパスを通過せずにモジュールをインポートしたいとします。開発フォルダにノードのグローバルフォルダのようにアクセスする

たとえば、

c:\Projects\Apps\ 
    firstApp 
     www.js // I wish to import db with require('db') 
    Modules 
     db 
     src/...*.js // var ext=require('extensions') 
     test/...*.js 
     index.js 
     api 
     src/ 
      *.js // var ext=require('db'), 
       // var ext=require('extensions'), 
     test/ 
      *.js // var testApi = require('api') 
     index.js 
     extensions 
     src/...*.js 
     test/...*.js 
     index.js 

localyにインストールされているかのように、別のフォルダにあるかのように使用できますか。 npm linkはこれに使用できますか?

+0

これは複数の方法で達成できますが、ご質問にさらに制約を設定したいですか?たとえば、次のようなパスを指定することで必要になる可能性があります。 'require( '../app1/api/src/db')' – p1100i

答えて

0

require('...')./または../を使用すると、node_modulesフォルダまたはローカルファイル内のモジュールを検索します。

あなたができることは、相対/絶対ファイルパスを使用していない場合でもローカルファイルを探す自分のrequire関数を作成することです。あなたのルート/エントリーコードで

、これを使用する:

var projectDirectory = __dirname; 
GLOBAL.requirep = function(path) { 
    return require(projectDirectory + '/' + path); 
} 

//at any js file, you can do this: 
var db = requirep('db') //will load db/index.js 
var api = requirep('api/src/file.js') //will load api/src/file.js 

を、それはグローバルなので、あなたが必要な場所からアクセスすることができます。

関連する問題