簡體   English   中英

使用全局包打包nodejs應用程序

[英]Package nodejs application with global packages

我們有一個必須打包成拉鏈的項目,所以我們可以將它分發給我們的cliens。 使用正常的node_modules目錄我沒有問題。 我只是將目錄和node.exe放在我的項目文件夾中,並且可以在所有其他計算機上啟動我們的項目而無需安裝節點或運行任何npm命令。

但是現在我對phantomjs有所依賴,需要安裝為全局包npm install -g phantomjs

我如何將這樣的模塊打包到我們的項目中? 我首先想到將phantomjs復制到本地node_modules目錄並將路徑變量NODE_PATH設置為此目錄。 它找不到幻影。

開發和客戶端平台都是窗口。

好吧,通常可以使用--save標志安裝全局依賴項並調用它們的bin,如./node_modules/phantomjs/bin/phantomjs /*now executes*/ (僅作為說明性示例)。

然而,與Phantom一起使用它並不那么簡單,因為它正在下載二進制文件和/或甚至編譯。 你有三個選擇:

  1. ssh到目標並且只是npm install -g phantomjs之前或者在清單中定義它,例如Dockerfile就像那樣,如果你正在使用容器。
  2. 根據此處的建議從源代碼編譯它。
  3. 如果您使用的是CLI,那么只需使用--save方法。

所以我幾乎不建議只用它來制作一個Docker鏡像並將其作為tarball發送。 不幸的是,您不能壓縮平台相關的Phantom安裝。

此外,許多依賴項(如karma-runner-phantomjs查找全局依賴項的路徑以解決它們的使用問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM