2015-09-12 158 views
2

當與已登記在NPM模塊的工作,包括他們的過程很簡單:運行npm install <package>然後添加var package = require('<package'>)需要節點模塊本地

但是,我不知道的「套東西」的方式當在我自己的模塊上工作時。我還沒有準備好發佈到NPM,但我希望按照前面所述的相同方式使用模塊require

因此,我已完成以下步驟:

  1. 創造了node_moduels目錄中的子目錄我模塊
  2. 增加了package.json文件(通過NPM INIT)這個新目錄中
  3. 包括在package.json文件

一個dependencies部分這是正確的做法,以使用節點模塊在本地。

另外,當我運行npm install依賴似乎沒有在我的模塊的package.json文件中檢測到 - 我認爲這是一個問題,我對事情的方式?

回答

3

我不會建議把它放在node_modules目錄中。該文件夾應該從源代碼管理中排除。

這是一個最小端到端示例。

把這個文件放在任何你喜歡的地方。我建議你的目錄結構中的 'LIB' 文件夾

myModule.js

module.exports = function(callback){ 
    return callback("hello there"); 
}; 

然後,無論你想使用它:

app.js

var myModule = require('./lib/myModule'); 

myModule.sayHello(function(hello) { 
    console.log(hello); 
}); 

現在,如果您運行node app.js您的控制檯輸出將爲:

你好

隨着你myModule的增長,你可以重構這個到一個單獨的文件集,創建一個包。JSON它,並將其發佈到NPM

編輯

基於您的評論,看起來這是你想要的

Local dependency in package.json

因此,基於的是,隨着我們上面的例子,編輯你的package.json如下

​​

然後你可以require爲:

var myModule = require('myModule'); 

如果/當你發佈myModule到故宮,你可以改變你的package.json

ANOTHER編輯

作爲另一種選擇,你可以在指定的URL的git你的package.json不發佈到NPM

Use Git dependencies with npm and Node on Heroku

+0

謝謝 - 但現在每次我想從模塊的本地版本切換到最終可能會添加到NPM的那個,我需要更改require路徑 – tommyd456

+0

本質上 - 我想包括我的模塊在相同我會,如果它是從NPM拉出的方式。 – tommyd456

+0

疑難雜症,看到我的編輯 – Alex

0

這將是爲執行以下操作一樣簡單:

  1. 在你(未發表)模塊的根目錄中執行npm link
  2. 在你的模塊要求未發表的模塊執行npm link UNPUBLISHED_MODULE_NAME的根目錄。

voilà!