Flash-AssetsでClosure Compilerを使用する
Flash-AssetsでClosure Compilerを使用した際に躓いた箇所をメモ。
使い方などはFlask-Assets — Flask-Assets 0.8.dev documentationを参照のこと。
Windows環境でClosureを使用しようとすると、なんかエラーがでて正常に動作しない。なんだこれは!とおもって調べてみると環境変数とFlask-Assetsのファイル自体に原因があるみたい。解決策として、環境変数JAVA_HOMEにjava.exeのあるbinフォルダつまり、JAVA_HOME/bin/java.exeとなるように設定を行い、(pythonをインストールしたフォルダ)/Libsite-packages/webassets/filter/__init__.pyの322行目辺り(ver0.7)を
proc = subprocess.Popen( [self.java, '-jar', self.jar] + args, # we cannot use the in/out streams directly, as they might be # StringIO objects (which are not supported by subprocess) stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
とすれば良い。なんか、shell=Trueを追加しないとエラーが出るみたいね。
すごい雑だけど以上。