프론트 엔드 구성 요소에 약간의 CoffeeScript를 사용하는 Python Django 패키지를 만들고 있습니다.파이썬 패키지의 distutils 설치 단계에서 CoffeeScript를 어떻게 컴파일 할 수 있습니까?
바로 지금, 나는 커피 스크립트 편집을 담당하는 다소 뇌사 상태의 외부 스크립트를 가지고 있습니다. src/coffee/디렉토리의 모든 * .coffee 파일에 대해 coffee
컴파일 명령을 실행하고 src/static/js에 출력을 저장합니다. 이는 python ./setup.py build_ext --inplace
이 C 소스의 빌드 파일을 개발 소스 트리에 저장하는 것과 유사합니다.
지금은 효과가 있지만 상당히 편하다. 즉, 플랫 디렉토리 구조를 강제로 만들고 src/static ("정적"이 암시하는 것과 반대 임)의 파일을 수정한다.
을 : -나는 것들에 대해 최대한 파이썬되고 싶어요, 그래서 하위 명령 "build_ext"는 setup.py의 하위 명령으로 coffee
를 실행하는 distutils.ccompiler.CCompiler
수정으로 보았다 나는이 같은 일을 할 수있는 능력을 구상했다
% 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
서브 클래스에서 .cx 소스로 .pyx 파일을 전처리하는)를 보았지만 이와 유사하게 특수하게 보였으 나이 경우에는 적절하지 않습니다.
누군가 distutils setup.py 스크립트로 CoffeeScript를 컴파일하는 좋은 해결책이 있습니까? 아니면, 좋은 대안을 제시하지 않으셨습니까?
요구 사항에 맞는지 확실하지 않은 https://github.com/jezdez/django_compressor를 확인하십시오. –
웹 응용 프로그램과 함께이 패키지를 개발중인 기본 프로젝트에서 실제로 해당 패키지를 사용하고 있습니다. 그것을 사용합니다. 훌륭한 패키지이지만 웹 컨텍스트에서 컴파일 된/압축 된 자산을 자동으로 배포하는 데 중점을 둡니다. 일반적인 전제 조건으로 사용할 수는 없습니다. Cython이 distutils와 함께 작동하는 방식에 대해 더 많은 것을 찾고 있습니다 (예 : 설치되어있는 경우 필요에 따라 사전 처리 및 컴파일). 잠재적 인 사용자는 CoffeeScript를 같은 방법으로 설치하지 않을 수 있으며 webapp 배포 방법은 django-compressor와 잘 맞지 않을 수 있습니다. – fish2000
장고의 collectstatic 명령 바인딩에 무슨 문제가 있습니까? –