簡體   English   中英

Django + Django-Pipeline with Javascript“Require”

[英]Django + Django-Pipeline with Javascript “Require”

我有一個模塊,可以在Javascript庫上調用require 我試圖用Django-Pipeline壓縮我的.js文件,但在collectstatic之后,網頁給出錯誤:

UncaughtReferenceError: require is not Defined

如果我不使用Django-Pipeline來壓縮文件,那么正常的測試/部署對於collect-static工作正常。 在不破壞依賴性的情況下縮小我的.js文件的正確設置是什么 - 文檔有點稀疏。 django-pipeline是正確的選擇嗎?

編輯:我已經嘗試確保首先在管道中壓縮“必需”模型,但我似乎無法壓縮require調用的模塊,而不會返回錯誤。

根據我的經驗,很難將require.js和django-pipeline結合起來(盡管它們都是很棒的項目)。

我曾經在一個項目中使用require.js來處理所有的javascript。 我嘗試使用django-pipeline,但無法使用require.js正常工作。 我們最終使用https://github.com/etianen/django-require為javascript和django-pipeline進行css縮小。

我建議嘗試刪除require.js並手動包含它使用管道導入的庫,或者使用require.js來構建和縮小所有的javascript資源。 您可以添加一個新步驟來構建所有javascript文件,並直接在模板中或使用管道鏈接到這些文件。

對不起,這可能不是您答案的實際“解決方案”,但您確實問過“django-pipeline是正確的選擇嗎?” :)

這是因為你的JS壓縮器(例如YUGLIFY)也在縮小javascript變量名,因此require可能被命名為xy 要克服此設置JS壓縮器中的正確選項,不要縮小變量名稱。

http://django-pipeline.readthedocs.org/en/latest/compressors.html#pipeline-yui-js-arguments

對於Yuglify來說,這個論點將是mangle:False ,這將阻止名稱的破壞。

也許這是PIPELINE_DISABLE_WRAPPER 嘗試將其設置為True

請參閱https://django-pipeline.readthedocs.org/en/latest/configuration.html#wrapped-javascript-output

暫無
暫無

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

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