Node.js 如何离线安装及应用如何在无外网连接服务器上进行部署?

Node.js 如何离线安装及应用如何在无外网连接服务器上进行部署?

离线安装Node.js已经搞定了,可以用.tar包,然后在服务器上进行make && make install,但这种方式需要安装g++等,服务器不一定有安装或者提供权限,有没有别的办法?

部署Node.js应用后,很多时候需要用npm安装不同的module,如何在没有外网连接的服务器上安装? 直接将开发测试服务器下的目录拷贝过去?

谢谢指点。

3 回复

Node.js 离线安装及应用在无外网连接服务器上的部署

离线安装 Node.js

在无法访问互联网的服务器上安装 Node.js 可以通过预编译好的二进制文件来完成。以下是一个简单的步骤指南:

  1. 获取 Node.js 二进制文件: 在有网络连接的机器上下载 Node.js 的预编译版本(例如 .tar.gz 文件)。你可以从 Node.js 官方网站下载适合你操作系统的版本。

  2. 传输文件到目标服务器: 使用 scp 或其他工具将下载好的文件传输到目标服务器。例如:

    scp node-v14.17.0-linux-x64.tar.gz user[@your-server](/user/your-server):/path/to/destination
    
  3. 解压并安装: 在目标服务器上解压文件,并将其移动到合适的位置。例如:

    tar -xzf node-v14.17.0-linux-x64.tar.gz
    sudo mv node-v14.17.0-linux-x64 /usr/local/nodejs
    sudo ln -s /usr/local/nodejs/bin/node /usr/local/bin/node
    sudo ln -s /usr/local/nodejs/bin/npm /usr/local/bin/npm
    

在无外网连接的服务器上部署 Node.js 应用

在没有外网连接的情况下部署 Node.js 应用,可以通过以下方法来处理依赖模块的安装问题:

  1. 在有外网连接的机器上安装模块并导出清单: 在有外网连接的开发或测试服务器上安装所有需要的 npm 模块,并生成一个 package-lock.json 文件。

    cd your-node-app
    npm install
    
  2. 传输应用及其依赖到目标服务器: 将整个项目目录和 node_modules 目录一起传输到目标服务器。例如:

    tar -czf app.tar.gz .
    scp app.tar.gz user[@your-server](/user/your-server):/path/to/destination
    
  3. 在目标服务器上解压并运行应用: 在目标服务器上解压文件,并确保 nodenpm 已经正确配置。例如:

    tar -xzf app.tar.gz -C /path/to/destination
    cd /path/to/destination
    npm install --production
    node app.js
    

通过以上步骤,你可以在没有外网连接的服务器上成功安装和部署 Node.js 应用。这种方法避免了在目标服务器上使用复杂的编译工具链,同时确保了应用的所有依赖项都能正确安装。


可以设置下npm全局模块的位置

对于这个问题,你可以通过以下步骤解决:

  1. 离线安装 Node.js

    如果你无法在线安装 Node.js,可以下载预编译好的二进制文件。这些文件通常可以在 Node.js 官方网站或镜像站点上找到。例如,你可以选择一个 .tar.xz 文件,然后将其上传到你的服务器上。接着解压并安装它。

    示例命令:

    tar -xf node-v16.15.0-linux-x64.tar.xz
    sudo mv node-v16.15.0-linux-x64 /usr/local/nodejs
    

    然后将 /usr/local/nodejs/bin 添加到系统的 PATH 环境变量中。

  2. 离线安装 npm 模块

    在有网络连接的环境中,使用 npm--save 参数将项目依赖保存到 package.json 文件中。然后,在无网络环境的服务器上,将这些依赖下载到本地,并将它们复制到目标服务器的 node_modules 目录下。

    示例命令:

    # 在有网络的环境中运行
    npm install --save <package-name>
    
    # 将生成的 node_modules 文件夹上传到无网络的服务器
    scp -r node_modules user[@your-server](/user/your-server):/path/to/project/
    

    确保所有依赖项都正确地放置在目标服务器上的 node_modules 文件夹中,这样你的应用就可以正常运行了。

通过上述方法,即使服务器没有网络连接,你也可以顺利安装 Node.js 及其相关模块。

回到顶部