2015-11-03 35 views
2

我一直在我的筆記本電腦上開發我的nodejs項目。我在本地安裝了我的項目的所有依賴項。現在我想將我的項目轉移到離線機器中。如何在沒有互聯網的機器上安裝nodejs項目?

離線機器預先安裝了nodejs環境。我試圖將該項目複製到該機器,但它不起作用! 我已安裝的模塊不能正常工作

例如:我在我的項目中安裝了gulp模塊。當我運行gulp命令時,它不被識別。

請幫忙嗎?

+0

如果只是複製一切,可執行文件將不會在您的PATH。您可以手動運行它們:'node。/ node_modules/.bin/gulp'或使用npm腳本。 –

+0

謝謝,但我是nodejs的新手。你是什​​麼意思通過npm腳本 – chang

回答

1

在連接到互聯網的機器看是否有一個叫做環境變量:

NODE_PATH 

的Linux/OSX/Windows中的所有已ENV變量的概念。如果NODE_PATH定義,它通常有一個像

echo $NODE_PATH 

/home/stens/node-v5.0.0/lib/node_modules 

節點的所有的值,包括故宮和所有全球安裝的模塊住在離父目錄掛:

/home/stens/node-v5.0.0 # parent directory 

就在同互聯網連接的機器,如果你安裝globally所有npm模塊,您將在後面使用脫機,然後將上面的整個父目錄壓縮或壓縮到單個文件中,然後將其複製到脫機機器,然後展開並定義自己的env var NODE_PATH和更改的PATH,它將起作用。這裏是你如何在全球範圍的互聯網連接盒

npm install xxxx -g 

其中xxxx是模塊名稱

此外,您將需要擡高的環境變量PATH離線機器上,因此它可以找到上安裝NPM模塊可執行文件的位置,如npm和節點。下面的環境變量設置工作,把整個節點基礎設施到離線機器

export NODE_PARENT=${HOME}/node-v5.0.0 # <-- starting point dir use whatever 

export PATH=${NODE_PARENT}/bin:${PATH} # <-- path to executables 
export NODE_PATH=${NODE_PARENT}/lib/node_modules 

美麗的東西從目錄$ {HOME} /node-v5.0.0掛了約全球範圍內安裝的NPM模塊是他們是那麼可用於任何項目,無需將它們本地安裝到任何節點項目

PS - 您在哪個操作系統上?

這裏是我的NODE_PARENT目錄

cd ${NODE_PARENT} 

~/node-v5.0.0 

ls -la ~/node-v5.0.0 

drwxrwxr-x 7 stens stens 4096 Nov 2 15:45 . 
drwxr-xr-x 80 stens stens 4096 Nov 3 11:28 .. 
drwxrwxr-x 2 stens stens 4096 Nov 2 15:46 bin 
drwxrwxr-x 2 stens stens 4096 Nov 2 15:45 etc 
drwxrwxr-x 3 stens stens 4096 Nov 2 15:37 include 
drwxrwxr-x 3 stens stens 4096 Nov 2 15:37 lib 
drwxrwxr-x 5 stens stens 4096 Nov 2 15:37 share 

掛低於它的lib目錄中的內容是

~/node-v5.0.0/lib/node_modules/ # <-- this dir contains all npm modules 
+0

感謝斯科特的答案。 NODE_PATH給這些值*/usr/lib/nodejs:/ usr/lib/node_modules:/ usr/share/javascript * – chang

+0

btw我正在使用linux操作系統 – chang

+0

請告訴我們您是否需要更多信息 - –

相關問題