[英]Ruby on Rails [heroku] git push heroku master error
我試圖將我的Web應用程序上傳到heroku,但是發生以下錯誤。
(我正在使用cloud 9 IDE進行編碼)
$ git push heroku master
.....
remote: -----> Installing node-v10.14.1-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote: Running: rake assets:precompile
remote: Yarn executable was not detected in the system.
remote: Download Yarn at https://yarnpkg.com/en/docs/install
remote: I, [2019-05-22T02:13:47.373334 #1766] INFO -- : Writing
/tmp/build_fcc84922ee6a02bfc05a163c871d0548/public/assets/noimage-
3aa3997354b4e9c37f379deb61626f55ade493078d1b42dcefe4a3ccbed34106.jpg
remote: rake aborted!
remote: ExecJS::RuntimeError: SyntaxError: Unexpected character '`'
remote: JS_Parse_Error.get ((execjs):3538:621)
remote: (execjs):4060:48
remote: (execjs):1:102
.....
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
首先,它說“在系統中沒有檢測到Yarn可執行文件”,但是如果我用yarn -v檢查它,它將被正確下載。
另外,ExecJS :: RuntimeError:SyntaxError:意外字符'`'錯誤似乎是無法識別es6,作為解決方案
config.assets.js_compressor =:uglifier
config.assets.js_compressor = Uglifier.new(和聲:true)
更改為似乎可以閱讀es6。 但是上述錯誤仍然存在。
另外,如果我在控制台上運行“ rake asset:precompile RAILS_ENV = production”,則它可以正常運行而不會出錯。
謝謝。
嘗試將此gem添加到您的gem文件中。
gem 'therubyracer'
試試這個鏈接:
將Rails應用程序部署到Heroku時的語法錯誤:ExecJS :: RuntimeError:SyntaxError:意外字符
config.assets.js_compressor =: uglifier
=: uglifier
之間的空間:
和uglifier
?
應該是= :uglifier
並嘗試使用不帶字符串RAILS_ENV = production
預編譯命令,因為Heroku默認安裝生產模式。 如果我沒錯的話
嘗試此操作,轉到其網站上的heroku儀表板,選擇您的應用,單擊齒輪圖標(設置),向下滾動,直到看到“ build packs”,添加ruby和nodejs buildpacks,並確保順序是該nodejs出現首先在列表中,然后是紅寶石(從上到下)。
如果那行不通,您能說明一下如何觸發JS的編譯嗎?
說明:我之前已經看到過此錯誤(使用npm而不是yarn),從本質上來說,您希望herokus nodejs buildpack負責JS編譯,內置的一個rails似乎與它們的系統不兼容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.