我一直在我的笔记本电脑上开发我的nodejs项目。我已经在本地安装了项目的所有依赖项。现在我想将我的项目转移到离线机器中。
离线机器预装了nodejs环境。我尝试将项目复制到该机器,但没有成功! 我安装的模块无法运行
示例:我的项目中安装了 gulp 模块。当我运行 gulp 命令时,它无法被识别。
请问有什么帮助吗?
最佳答案
在连接到互联网的机器上查看是否有一个名为:的环境变量
NODE_PATH
linux/OSX/Windows 都有环境变量的概念。如果定义了 NODE_PATH,它通常具有类似
的值echo $NODE_PATH
/home/stens/node-v5.0.0/lib/node_modules
所有 Node (包括 npm 和所有全局安装的模块)都从父目录中挂起:
/home/stens/node-v5.0.0 # parent directory
在同一台连接互联网的计算机上,如果您全局
安装您稍后将离线使用的所有 npm 模块,则将整个父目录(如上所示)压缩或压缩到单个文件中,然后将其复制到离线机器然后扩展并定义自己的环境变量 NODE_PATH 并更改 PATH 它将起作用。以下是如何在互联网连接的盒子上全局安装 npm 模块
npm install xxxx -g
其中 xxxx 是模块名称
此外,您需要在离线计算机上提升 env var PATH,以便它可以找到 npm 和 node 等可执行文件的位置。以下环境变量设置可将整个 Node 基础架构卡在脱机计算机上的目录 ${HOME}/node-v5.0.0
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
全局安装 npm 模块的好处是它们可以在任何项目中使用,而无需将它们安装到任何 Node 项目本地
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
关于node.js - 如何在没有互联网的机器上安装nodejs项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33501311/