【发布时间】:2018-03-08 02:11:10
【问题描述】:
我正在我的 Ubuntu 本地机器上开发 node js 应用程序。我想打包我的应用程序并在任何远程 Ubuntu 机器上运行并启动它。
在我的本地环境中执行以下操作:-
- 在我的本地机器上安装 npm 包,例如 "npm install express --save"
- 所有 Node 包都保存在 myProject/node_modules 下,包的引用保存在 package.json 中
- 将 myProject 文件夹设为 myProject.zip,其中包含 myProject/node_modules
- 将 myProject.zip 存储在存储中
在我的远程环境中执行以下操作:-
- 安装 Node Js 和 npm
sudo apt-get -y update sudo apt-get -y install build-essential libssl-dev curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash - sudo apt-get install -y nodejs
- 从存储中下载 myProject.zip
- 解压 myProject.zip
- cd myProject
- 由于我想将我的应用程序作为服务启动,我正在使用 "npm install -g forever-service --save" 安装此软件包
- forever-service install myapp --script server.js
- 服务 myapp 启动
我想知道我的上述方法在以下方面是否正确:-
- 在远程机器中解压并启动 node js 应用程序
- 尤其是安装包。在我的本地环境(本地)中,我在远程机器中使用 "npm install express --save" 和 "npm install -g forever-service --save" (全局使用 -g 选项)
- 如果我在本地环境中执行 "npm install -g forever-service --save" 并将 myProject 打包为 zip。它在 myProject.zip 中不可用,因为 forever-service 是全局安装的。
现在我正在尝试安装 azure-cli 包。应该是本地安装还是全局安装。
【问题讨论】:
-
我认为,您不应该压缩应用程序依赖项。只需创建应用程序的 zip(不包括依赖项),将其复制到远程服务器,解压缩,然后安装依赖项(前提是您有 Internet 连接),然后运行它。
-
所有节点包都应该全局或本地安装在远程机器上。
-
我总是从
package.json本地安装它们。 -
forever-service 不起作用如果我在远程机器上安装它时没有 -g 选项
-
是的,该服务需要全局安装。 npmjs.com/package/forever-service#prerequisite
标签: node.js ubuntu npm package