2015-06-04 30 views
0

可能是一個非常簡單的答案,但我迷路了。如果我在一個文件中有幾個目錄在根目錄下有一種方法,我可以在該文件中找到require ('mylib/module1'),並讓它從根目錄搜索'mylib/module1.js',而不是使用require的位置的相對路徑聲明?從NPM根目錄加載自定義模塊

顯然,如果我require('underscore') it will just look for it in的package.json , but I couldn't find any way to set up a reference in package.json`指向正確的文件夾,這樣的:

依賴關係:{ 「MYLIB /模塊1」: 「./mylib/module1.js」 }

我確實找到了browser的引用,它允許您映射到客戶端文件,但我正在尋找一些可以在後端工作的東西。

+1

看看http://www.devworkflows.com/posts/using-local-npm-modules-in-npm-v2-0/ –

回答

0

不需要npm支持的一種方法是將mylib文件夾重命名爲node_modules。你可以簡單地require('module')

這個原因起作用的原因是因爲require遞歸搜索目錄結構直到/尋找名爲node_modules的文件夾。這種非常簡單的機制允許節點具有多個級別的目錄,在必要時可以在多個「本地」級別覆蓋目錄。例如,你可以有以下目錄結構:

/usr 
    /home 
     /diplosaurus 
      /node_modules 
       module1.js <-------- version 1 
      /code 
       /node_modules 
        module1.js <-------- version 2 
       /projectA 
        /node_modules 
         module1.js <------- beta version 
        main.js 
       /projetB 
        main.js 

在你的home目錄中的所有代碼將使用的module1 1版本,但代碼中code目錄將使用版本2和projectA使用測試版。

這也意味着您可以讓npm管理您的項目的node_modules目錄,但仍然爲您的個人圖書館維護手動管理的更高級別目錄node_modules