2012-11-14 103 views
1

我使用了本頁中說明的步驟:http://nodejs.org/api/addons.html並使用node-gyp工具成功創建了addon.node文件。它工作正常,它是一個C++靜態庫的包裝。節點js模塊的分佈

現在我想分發此,我使用創建的package.json文件:「故宮安裝-g」

NPM初始化

,並使用測試,但它試圖重新編譯模塊,將難以實現,因爲它需要將庫嵌入到.node文件中,是否可以分發我已經在系統中編譯的.node文件?

如何將編譯後的.node文件包含到npm包中並將其上載到npm註冊表中。我相信我只是一步到位,但我不知道從哪裏開始。

我讀到了依賴關係,但似乎它適合於當你的模塊依賴於其他模塊,而不是你自己的.node文件。

感謝您的幫助。

+0

當然,答案是一個簡單的谷歌... – SomeKittens

+0

其實,我做了3個小時,現在我轉向社會,因爲它沒有解釋在我使用google發現的任何頁面中,我可以列出一長串我讀過的網站,但它們都有相同的樣本,這是npm文檔中找到的樣本。 – Cross

回答

2

好吧,我終於做了什麼,我想實現,我這裏還有萬一有人選項人需要這樣的:

  1. 爲避免你可以創建一個新的文件夾的編譯和複製的package.json中那裏,與.node文件一起,我沒有找到這個,只是試過,它的工作。
  2. 提供所需的庫以允許用戶自己編譯。

儘管第一個工作正常,但我需要爲windows,linux,mac等創建一個包。這看起來很奇怪:「如果你在linux中使用:npm install xxx-linux」 ,所以我決定調整我的庫以允許用戶進行模塊編譯。

爲此,我創建了一個「client-dev」安裝程序,只要包含所需的包頭,就會預編譯所需的庫,然後使用預安裝的庫和標頭創建要編譯的節點模塊。我需要在我的網站上添加一個幫助來解釋,爲了安裝模塊,用戶需要先使用apt-get,windows installer或mac pkg安裝依賴關係。

雖然這對我有用,但我不知道從長遠來看這是否可以維持,但我沒有找到更好的方法來做到這一點。 (最終啓發我的目標的唯一鏈接是一個說:「如果你打算使用帶有預編譯庫的節點模塊,你將會做惡夢」,無論如何......我寧願不要從頭開始在節點js中完全實現並保持版本的Java,C#,nodejs,PHP等