2013-09-28 148 views
1

這裏已經有幾個與這個問題有關的問題了。將流星部署到官方流星服務器光纖

我想部署一個meteorjs應用程序到官方流星服務器。我的應用程序使用光纖,並且由於光纖是爲我的系統(Mac OSX)編譯的,所以它會在流星的ubuntu服務器上創建一個錯誤。

其他問題/答案與在官方流星服務器以外的地方部署應用程序有關,或者他們似乎離開了一步,因爲它們不適用於我。

幾個相關的帖子是這些:

Reinstalling node-fibers for a Meteor app on Modulus.io?

Problems with Meteor deployment related to fibers module

我想用:

meteor deploy myapp.meteor.com 

編輯:以上

我的問題是:不幸的是,我不是e未來,這是纖維的一部分。當我將它部署到meteor並訪問服務器日誌時,我收到了這些WARNING和應用程序崩潰。

警告/meteor/dev_bundles/0.3.13/lib/node_modules/fibers/future.js:173

警告錯誤:無法找到模塊「纖維/未來」

在我的代碼我有line:

Future = Npm.require("fibers/future"); 

這是不可能在流星部署XXX.meteor.com?

編輯第二: 而不是使用:

Future = Npm.require("fibers/future"); 

我也試過:

var path = Npm.require('path'); 
var fs = Npm.require('fs'); 
var base = path.resolve('.'); 
var isBundle = fs.existsSync(base + '/bundle'); 
var modulePath = base + (isBundle ? '/bundle/static' : '/public') + '/node_modules'; 
Future = Npm.require(modulePath + '/fibers/future'); 

正如這篇文章建議:

How can I deploy node modules in a Meteor app on meteor.com?

,並安裝光纖到:

.meteor /本地/編譯/程序/服務/公共/ node_modules/

但有了這個,我得到這兩種運行時流星沒有sudo 錯誤:EACCES,權限被拒絕「XXXX/.meteor /本地/編譯' 在Object.fs.renameSync(fs.js:439:18)

還是這個錯誤,使用sudo運行它時: 錯誤:無法找到模塊' XXXX/.meteor /本地/編譯/程序/服務器/ public/node_modules/fibers/future'

通常我沒有sudo ofc運行meteor!

回答

1

我的問題是,我確實包含了加載另一個框架的npm包,它打破了新流星的Npm。

0

你只是需要卸載的纖維,並重新安裝它在文檔中提到了你的服務器上:

cd bundle/programs/server/node_modules 
rm -r fibers 
npm install [email protected] 

凡bundle目錄是您通過meteor bundle xxx.tar.gz你的Ubuntu服務器上創建的捆綁應用程序的未解壓版本

+0

對於我的問題並不適用,因爲我直接部署到流星服務器時從來沒有捆綁文件夾。 Thx雖然你的時間! –

+0

哦,我知道我想我知道你在做什麼。我認爲光纖/未來在'流星'部署託管中'沒問題',而不需要二進制文件。你有沒有考慮過'wrapAsync',它會在最終確定的時候與更多的官方插件保持一致?見https://www.eventedmind.com/posts/meteor-meteor-wrapasync – Akshat

0

來自meteor documentation很明顯,您可以通過'流星部署'部署到meteor.com,或者通過創建一個包含'流星包'的包來部署到您自己的服務器。

只有當你創建你的捆綁包,你需要安裝'纖維'。如果你使用'流星部署'就沒有必要。

,你必須刪除並重新安裝纖維包,如果你要部署這樣

  • 開發機器上創建包
  • 的bundle.tgz文件複製到只需要在你的一部分運行在不同的操作系統
  • 服務器解壓bundle.tgz文件並運行應用程序

在創建包,你必須在任何情況下,安裝光纖。如果你做這一切的服務器上的步驟是:

  • 流星束--release 0.6.5.1 /my/output.tgz
  • 焦油-xvzf /my/output.tgz
  • MV束的-app名
  • 您的CD-APP-名稱/程序/服務器
  • NPM安裝光纖
  • forever啓動,應用程序名稱/ main.js

這些步驟假設你使用節點包forever

+0

感謝您的答案!不幸的是,在流星部署中,我得到一個錯誤,我認爲這個錯誤與舊版帖子中的其他相關問題 –

+0

相同,他們使用較舊的流星版本。在運行npm install光纖之前,您是否更改過yourapp/programs/server的路徑? –

+0

我不確定你指的是哪個'舊帖子',但我在第二個編輯中加入了關於你可能與之有關的問題。 –