私は、フロントエンドコンポーネントがCoffeeScriptを少し使用しているPythonDjangoパッケージに取り組んでいます。
今のところ、CoffeeScriptのコンパイルを処理するかなり頭がおかしい外部スクリプトがあります。coffee
src /coffee/ディレクトリ内のすべての*.coffeeファイルに対してコンパイルコマンドを実行し、出力をsrc / static / jsに保存するだけです。これpython ./setup.py build_ext --inplace
は、C拡張機能のビルドファイルを開発ソースツリーに保存する方法と似ています。
これは今のところ機能しますが、かなり安っぽいです。フラットなディレクトリ構造を強制し、src / static内のファイルを変更します(これは「static」が意味するものの反対です)。
私は物事について最大限にPythonになりたいので、setup.py"build_ext"サブコマンドのサブコマンドとしてdistutils.ccompiler.CCompiler
実行するように変更することを検討しました-私は次のようなことを行う機能を想定していました:coffee
% 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のコード(特に、CCompiler
.pyxファイルを前処理するCythonのサブクラス)も調べました。 .c source)になりますが、これは同様に特殊化されているように見え、この場合にはあまり適切ではありません。
誰かがdistutilssetup.pyスクリプトでCoffeeScriptをコンパイルするための良い解決策を持っていますか?または、それを除けば、良い代替案ですか?