2015-11-03 138 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

请告诉我们您是否需要更多信息 - –