我知道如何打包然后部署流星应用程序。但最近在一个项目中,我遇到了一个我无法解决的错误。
Steps I followed for package and deploy of my meteor app:
1. meteor build package
2. cd package
3. tar -xf inventoryTool.tar.gz
4. cd bundle/programs/server
5. npm install
6. cd ../..
7. PORT=<port> MONGO_URL=mongodb://127.0.0.1:27017/dbName ROOT_URL=http://<ip> node main.js
当我运行npm install
(步骤5)命令时,这是错误的log。
我的执行中有什么遗漏吗?我没有在我的项目中的任何地方使用光纤包。有没有人能解决这个问题?提前谢谢。
答案 0 :(得分:1)
您的本地版本节点为v8.9.4
。使用build命令时,您将导出应用程序并根据此完全节点版本构建代码。您的服务器环境也需要此完全版本。
指南custom deployment section的摘录:
根据您使用的Meteor版本,您应该安装 使用适当的安装过程的适当版本的节点 为您的平台。要找出应该使用的节点版本, 在开发环境中运行meteor node -v,或者检查 流星版生成的捆绑包中的.node_version.txt文件。
即使您没有明确使用fibers
,也需要在服务器上正确运行Meteor应用程序。
为了解决这个问题,你需要
a)确保您的本地版本的节点与服务器上的版本完全匹配
b)确保您构建服务器的体系结构(请参阅build命令)
要在服务器上安装 a)非常具体的节点版本,您有两种选择:
选项I。使用n
,如上所述here。但是,只有当您的服务器环境使用node
而不是nodejs
时(这取决于您在服务器上安装nodejs的方式),这才有效。
II。要从存储库安装特定的nodejs
版本,您可以执行以下操作:
$ cd /tmp
$ wget https://deb.nodesource.com/node_8.x/pool/main/n/nodejs/nodejs_8.9.4-1nodesource1_amd64.deb
$ apt install nodejs_8.9.4-1nodesource1_amd64.deb
如果您不确定服务器上安装了哪两个,请检查node -v
和nodejs -v
。其中一个将返回一个版本。如果您的npm install
仍然失败,请检查错误输出以及是否涉及node
或nodejs
并使用上述选项安装所需的发布。
要针对服务器上的体系结构构建b),您应该在--architecture
命令中使用build
标志。