簡體   English   中英

webpack-encore項目的版本控制策略

[英]Version control strategy for webpack-encore project

我正在學習使用webpack-encore,並且注意到它僅作為dev依賴項安裝。 這是否意味着我應該在開發時編譯我的jscss文件,並將它們推送到存儲庫,然后再推送到生產環境?

在我看來,這意味着文檔所隱含的含義,但這是否意味着合並沖突地獄? 編譯的文件將無法合並。

也不會違背版本控制原則嗎? 據我所知,您不會以編譯語言(即C / C ++)發布二進制文件,而是會推送代碼並期望服務器對其進行編譯。 我知道這與javascript中的“編譯”類型不同,但是在這種情況下生產服務器的預期行為是什么? 要接收准備服務的文件,還是在發布時進行編譯?

提前致謝

這是否意味着我應該在開發時編譯我的js和css文件,並將它們推送到存儲庫,然后再推送到生產環境?

不完全是-這取決於您的部署方式。

部署時,需要運行./node_modules/.bin/encore production以構建資產。 完成此操作后, 僅需要將已構建的資產(例如web/build )轉移到生產中。

您可以在本地(或在某些“構建”服務器上)運行此命令,並將所有文件傳輸到生產環境。 或者,您可以在生產環境中使用git pull ,然后在生產環境中運行此命令(不利之處是您需要在生產環境中安裝Node.js)。

您不需要/不需要將構建的文件提交到存儲庫。 但是...如果它簡化了您的部署(即您要進行git pull並完成),則沒有任何實際問題。

我只是在FAQ( http://symfony.com/doc/current/frontend/encore/faq.html )中添加了PR來回答這些問題-這是部署之前的PR: https : //github.com/symfony/ symfony-docs / pull / 8109

干杯!

解決方案1:

  1. 本地運行yarn run encore production
  2. 查看哪些文件已創建/修改
  3. 將它們添加到VCS
  4. 承諾
  5. 推送/部署

解決方案2:

  1. 推送/部署
  2. 在部署期間遠程運行yarn run encore production

在我看來,第二種解決方案更好,因為在部署之前不需要額外的人工檢查,一切都是自動化的。 但這有一個很大的缺點:資產的建立過程可能很慢,而當我部署時,在資產建立之前,我的生產會在5到20秒內停機。

這是HTTP 500錯誤:

呈現模板期間引發了異常(“資產清單文件“ [...] / web / build / manifest.json”不存在。”)。

看起來manifest.json文件在該過程的開始被刪除,並在以后從頭開始創建。

有什么需要改進的地方嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM