これを達成するためのよりインテリジェントな方法があるに違いないと確信しています。Closure で縮小する前に、JavaScript のアプリ ID を変更する必要があります。
私が思いついた「迅速な」解決策の1つは、古き良きsedを使用することでした。これはコマンド ラインでは機能しますが、python ファイル内で実行すると失敗します。エラーで失敗することはありません。outfile ファイルは、ソースの正確なコピーです。あたかもテキストが見つからなかったかのように。
choice = raw_input("Type 1 (Staging) or 2 (Production)?")
if choice == '1':
cmd = r"sed 's%var appid = '1234';%var appid = '5678';%' {0}f11.js > {0}f11_final.js".format(PATH)
os.system(cmd)
私が見逃しているものはありますか?ありがとう
アップデート:
ソースを次のように変更しました。
var appid = '1';
これに:
var appid = 1;
これを正常に実行しました:
cmd = "sed -i 's%var appid = 1;%var appid = 2;%' {0}f11.js".format(PATH)
一重引用符のエスケープに関係しています。私に何ができるか考えていますか?試し\'
ましたが失敗します。
解決:
提案されたように、最終的にPythonで実行しました。ただし、これまでに行ったことがない場合は簡単ではありません。だから私は自分のコードを共有します:
with open("{0}f11.js".format(PATH), "r") as sources:
lines = sources.readlines()
with open("{0}f11-final.js".format(PATH), "w") as sources:
for line in lines:
sources.write(re.sub("var appid = '1';", "var appid = '2';", line))