我正在研究一個Python Django包,其前端組件使用了一點CoffeeScript。如何在Python包distutils安裝的構建階段編譯CoffeeScript?
現在,我有一個非常大腦死亡的外部腳本來照顧CoffeeScript編譯。它僅對src/coffee /目錄中的每個* .coffee文件運行coffee
編譯命令,並將輸出存儲在src/static/js中 - 這與python ./setup.py build_ext --inplace
在開發源代碼樹中如何存儲C擴展的構建文件類似。
現在可以使用,但它很俗氣 - 它強制使用一個扁平的目錄結構,並修改src/static中的文件(這與「靜態」意味着相反)。
我想最大Python的事情,所以我看着修改distutils.ccompiler.CCompiler
運行coffee
爲setup.py「build_ext」子命令的子命令 - 我預想到做這樣的事情的能力:
% python ./setup.py build_coffee
% python ./setup.py build_coffee --inplace
% python ./setup.py build_ext --inplace # implying 'build_coffee --inplace'
...但我發現distutils的編譯器API過於專注於C編譯細微差別,在這種情況下沒有模擬,例如預處理,鏈接等。我還查看了Cython的代碼(特別是在Cython的CCompiler
子類中,它將.pyx文件預處理爲.c源代碼),但這看起來類似於專業化,並不適合這種情況。
有沒有人有一個很好的解決方案用distutils setup.py腳本編譯CoffeeScript?或者,除此之外,一個好的替代建議?
看看https://github.com/jezdez/django_compressor,不知道這是否適合您的需求 –
我實際上是在我的基礎項目中使用該軟件包,在該項目中我正在開發此軟件包以及一個Web應用程序使用它。這是一個很好的軟件包,但重點在於在Web上下文中自動部署編譯/壓縮資產 - 我不能將其用作通用先決條件。我正在尋找更多的內容,比如Cython如何使用distutils(例如,如果安裝了它,它將根據需要進行預處理和編譯)。我的潛在用戶可能沒有以相同方式安裝CoffeeScript,並且他們的webapp部署方法可能與django-compressor不兼容。 – fish2000
綁定到Django的collectstatic命令有什麼不對嗎? –