node.js - 如何在没有互联网的机器上安装nodejs项目?

标签 node.js npm offline portability

我一直在我的笔记本电脑上开发我的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/

相关文章:

javascript - 在express.js 上使用 ejs (ejs-locals) 插入带有数据的脚本标签

javascript - 是否应该将 package-lock.json 文件添加到 .gitignore 中?

javascript - 提供的元素不在文档中 - Reactjs

html - HTML5 离线应用程序是否需要 swapCache()?

javascript - 如何在 JavaScript 中保存网站以供离线使用

node.js - 使用 TypeORM 进行集成测试

node.js - 快速 session 条目未从 mongodb 中完全删除

node.js - 将 Node.js 作为 Windows 服务运行

node.js - 从依赖项和 devDependency 中删除 npm 包

javascript - 是否可以使此页面成为 iPhone 的离线网络应用程序?